我在執行c#中的update語句時遇到了一些問題。好吧,如果我寫的查詢字符串的一些具體數值就像C#參數在查詢字符串中不起作用
string querystr = "UPDATE Users SET User_FirstName='My Firstname', User_LastName='My Lastname' WHERE User_Username='username'";
但是,當我使用parameter.Add
在查詢字符串來寫,這是行不通的。所以我有一些麻煩,是如何讓參數在我的查詢字符串中工作。
這裏是我的腳本到目前爲止
SqlConnection connection = new SqlConnection("Data Source=localhost;Initial Catalog=Break; Integrated Security=True");
SqlCommand command = new SqlCommand("SELECT * FROM Users", connection);
command.Connection.Open();
string querystr = "UPDATE Users SET User_FirstName = @FirstName, User_LastName= @LastName WHERE User_Username = @Username";
SqlCommand query = new SqlCommand(querystr, connection);
string User_Username = Session["Username"].ToString();
string User_FirstName = FirstNameEdit.Text;
string User_LastName = LastNameEdit.Text;
query.Parameters.Add("@Username", User_Username);
query.Parameters.Add("@FirstName", User_FirstName);
query.Parameters.Add("@LastName", User_LastName);
query.ExecuteNonQuery();
Session.Add("FirstName", User_FirstName);
Session.Add("LastName", User_LastName);
StatusMessage.Text = "Updated!";
command.Connection.Close();
您收到任何錯誤或異常消息?給我們更多關於你的問題的細節。 –
請定義「它沒有工作」嗎?究竟發生了什麼? –
請檢查'User_Username','User_FirstName'和'User_LastName'的確切值,包括任何前導/尾隨空格,幷包括* case *;取決於數據庫配置,「Kvist」不一定匹配「kvist」,「KVIST」或「KvIsT」。有時它會 - 但是 - 依賴於配置。特別是,如果其中任何一個都是'null',事情會變得非常有趣(但是:'.Text'通常不會返回'null',所以這不太可能成爲問題) –