Osh*_*rib 6 c# sql asp.net query-string
首先..请原谅我的英语不好,我希望能被理解.
我很高兴与LINQ合作,SQL对我来说是新的.
我正在尝试做下一件事:我在c#上有下一个方法:
public string niceMethod()
{
SqlConnection connection = new SqlConnection("Data Source=*******;Integrated Security=False;");
string commandtext = "SELECT bla FROM items WHERE main = 1";
SqlCommand command = new SqlCommand(commandtext, connection);
connection.Open();
string tDate = (string)command.ExecuteScalar();
connection.Close();
return tDate;
}
Run Code Online (Sandbox Code Playgroud)
我有页面例如: items.aspx?nID=144
我怎么能这样做SELECT命令将使用查询字符串,这将取值
来自"items"表的地址上显示的id(nID)?
该表的设计例如:id, title, bla, main.
尝试这样的事情:
int nID = int.Parse(Request.QueryString["nID"].ToString());
niceMethod(nID);
public string niceMethod(int nID)
{
using (var conn = new SqlConnection("Data Source=server;Initial Catalog=blah;Integrated Security=False;"))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = @"SELECT bla, id, title FROM items WHERE main = @nID";
cmd.Parameters.AddWithValue("@nID", nID);
string tDate = cmd.ExecuteScalar().ToString();
return tDate;
}
}
Run Code Online (Sandbox Code Playgroud)
试试这个:
注意(Request.QueryString["nID"] ?? "0").ToString()它真的很重要,所以当没有查询时你不会得到异常.
public string niceMethod()
{
string tDate = "";
string ID = (Request.QueryString["nID"] ?? "0").ToString(); // Get's the nID query, incase there is no query, returns 0.
using (SqlConnection connection = new SqlConnection("Data Source=*******;Integrated Security=False;"))
{
string commandtext = "SELECT bla FROM items WHERE id=@ID"; //@ID Is a parameter
SqlCommand command = new SqlCommand(commandtext, connection);
command.Parameters.AddWithValue("@ID", ID); //Adds the ID we got before to the SQL command
connection.Open();
tDate = (string)command.ExecuteScalar();
} //Connection will automaticly get Closed becuase of "using";
return tDate;
}
Run Code Online (Sandbox Code Playgroud)