내 프로그램에서 사용자는 내가 만든 로컬 데이터베이스에서 값 (예 : price)을 변경할 수있는 옵션을 원합니다.로컬 SQL Server 데이터베이스의 값을 업데이트하는 방법
문제가 있습니다. 연결이 잘 작동하고 디버그가 잘되고 "저장 확인"메시지가 표시되지만 데이터베이스에서 전혀 변경되지 않습니다.
private void button2_Click(object sender, EventArgs e)
{
var con = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\sam\Desktop\hello\hello\DB.mdf;Integrated Security=True";
using (SqlConnection myconnection = new SqlConnection(con))
{
try
{
myconnection.Open();
var query = string.Format("update DBTable set price='"+textBox2.Text+"' where ParamToCheck='"+comboBox5.Text+"'");
SqlCommand cm = new SqlCommand(query, myconnection);
cm.ExecuteNonQuery();
MessageBox.Show("saved ok !!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
사용자는 combobox5
에서 문자열을 선택하고 번호를 입력하여 textBox2
에서 자신의 가격을 변경 - 내가 원하는 것을 -하지만 변화하지 않습니다.
SSMS에서 직접 실행하면 쿼리가 작동합니까? – ChrisF
테이블/컬럼 이름이 실제로'DBTable'과'ParamToCheck'입니까? 가격이 varchar/nvarchar가 아닌 경우 값을 따옴표로 묶을 필요가 없습니다. – Marco
ExecuteNonQuery는 쿼리에서 업데이트 한 행 수를 반환합니다. 귀하의 메시지 상자는 "저장되었습니다"진실을 말하지 않습니다. _int rowsUpdated = cm.ExecuteNonQuery(); _로 확인한 다음 rowsUpdated 값을 확인하십시오. – Steve