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'을 반환하지 않으므로 문제가되지는 않습니다) –