[英]Incorrect Syntax near 'Name' and also give warning at cmd.ExecuteNonQuery()
private void btsSave_Click(object sender, EventArgs e)
{
try
{
string sql = "insert into tblRegistration (Name,Father Name) Values( '" + txtName.Text + "', '" + txtFname.Text + "' )";
SqlCommand cmd = new SqlCommand(sql, con);
if (cmd.ExecuteNonQuery() != null)
{
MessageBox.Show("Data Saved");
txtName.Text = "";
txtFname.Text = "";
txtName.Focus();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
避免列名中的空格通常是一个好主意。 我不认为在 SQL Server 中使用带空格的列名周围的单引号是有效的(如果这是您使用的)。 相反,您需要将列名括在方括号中,因此:
insert into tblRegistration(Name, [Father Name])
...
我还建议使用参数化查询来降低 SQL 注入风险: https : //docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcommand.parameters?view=netframework-4.8
您的查询和设置参数如下所示:
// Query text
string sql = "insert into tblRegistration (Name, [Father Name]) values (@Name, @FatherName)";
// After you create your cmd object
cmd.Parameters.AddWithValue("@Name", txtName.Text);
cmd.Parameters.AddWithValue("@FatherName", txtFname.Text);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.