Ich hoffe, Sie können helfen, ich versuche, meine Datenbankdatei zu aktualisieren, aber ich bekomme weiterhin einen Fehler, und ich bin mir nicht sicher warum, ich habe kein Problem beim Hinzufügen von Daten oder Anzeigen Daten, es aktualisiert nur die Daten, die ich habe Probleme mit was könnte das Problem sein?Falsche Syntax in der Nähe von "Full_Name"
der Fehler ist:
System.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near 'Full_Name'.
Und das ist mein Quellcode:
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
}
}
}
Wenn Sie die SQL ausgedruckt haben, wäre das Problem offensichtlich. In der SQL-Anweisung fehlen Leerzeichen. –