1
データベースファイルを更新しようとしていますが、エラーが発生し続けている理由がわかりません。データを追加したり表示したりするのに問題はありませんデータを更新しているだけで問題が発生している可能性があります。'Full_Name'付近の構文が正しくありません
System.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near 'Full_Name'.
そして、これが私のソースコードです:
誤りがある
public void UpdateTable()
{
try
{
string ID = Txt_IdNumber.Text;//ID Input
string setYearFormat = Tdp_DateOfBirth.Value.ToString("yyyy");//Get only the year to calculate age
string CurrentYear = DateTime.Now.Year.ToString();//Get current year from system settings
int getAge = Convert.ToInt32(CurrentYear) - Convert.ToInt32(setYearFormat);//Calculate Age
string setDOB = Tdp_DateOfBirth.Value.ToString("dd/MM/yyyy");//Set TimeDatePicker to spesific Long date
string Query = "UPDATE UserData" +
"SET Full_Name = @Fullname, Date_Of_Birth = @DateOfBirth, ID_Number = @IdNumber, Age = @Age" +
"WHERE Id = @Id";//Update query
using (SqlConnection Connection = new SqlConnection(ConnectionString))//Connection to ConnectionString
using (SqlCommand Command = new SqlCommand(Query, Connection))//Sql Command to add/Update
{
Connection.Open();//Open Connection
Command.Parameters.AddWithValue("@Id", Dgv_Output.SelectedRows);//Add Values
Command.Parameters.AddWithValue("@Fullname", Txt_Fullname.Text);//Add Values
Command.Parameters.AddWithValue("@DateOfBirth", Convert.ToDateTime(setDOB));//Add Values
Command.Parameters.AddWithValue("@IdNumber", ID);//Add Values
Command.Parameters.AddWithValue("@Age", getAge);//Add Values
Command.ExecuteNonQuery();//Execute Non Query
}
Txt_Fullname.Clear();//Clear Textbox
Txt_IdNumber.Clear();//Clear Textbox
Tdp_DateOfBirth.Value = DateTime.Now;//Set TimeDatePicker to system date
Txt_Fullname.Focus();//Focus on Full Name textbox
}
catch (Exception Err)
{
MessageBox.Show(Err.ToString(), "ERROR");
using (StreamWriter sr = new StreamWriter("UpdateError.txt"))//Write error to file
{
sr.Flush();//Flush existing data
sr.WriteLine(Err);//Write new data
}
}
}
SQLを印刷した場合、問題は明らかです。 SQL文が必要な場所にスペースがありません。 –