C# i';我在表格附近发现语法错误,它说我不知道到底需要做什么 { 字符串源=@“数据源=(LocalDB)\MSSQLLocalDB;“+@”AttachDbFilename=c:\users\meghanaa\Source\repos\datagrid\datagrid\trialdatabase.mdf;“+”集成安全性=True”; SqlConnection con_2=新的SqlConnection(源); con_2.Open(); 对于(int i=0;i
问题是由于数据库表的C# i';我在表格附近发现语法错误,它说我不知道到底需要做什么 { 字符串源=@“数据源=(LocalDB)\MSSQLLocalDB;“+@”AttachDbFilename=c:\users\meghanaa\Source\repos\datagrid\datagrid\trialdatabase.mdf;“+”集成安全性=True”; SqlConnection con_2=新的SqlConnection(源); con_2.Open(); 对于(int i=0;i,c#,C#,问题是由于数据库表的表名引起的。在大多数RDBMS中,这是保留字。理想情况下,在命名数据库对象时应避免使用此选项。有关SQL Server中保留字的列表,请参阅链接 如果您仍然想使用它或无法再更改它,请尝试将其放在方括号中,如[Table] 除了您提出的问题之外,代码中还有另一个主要问题。您的代码容易受到SQL注入攻击。请考虑使用参数查询。如果您对使用任何ORM(更简单,如Dapper)感兴趣,它可以处理此问题并促进许多最佳实践。在回答此问题之前,我强烈建议您阅读更多有关如何避免SQL注入的信息
表名引起的。在大多数RDBMS中,这是保留字。理想情况下,在命名数据库对象时应避免使用此选项。有关SQL Server中保留字的列表,请参阅链接
如果您仍然想使用它或无法再更改它,请尝试将其放在方括号中,如[Table]
除了您提出的问题之外,代码中还有另一个主要问题。您的代码容易受到SQL注入攻击。请考虑使用参数查询。如果您对使用任何ORM(更简单,如Dapper)感兴趣,它可以处理此问题并促进许多最佳实践。在回答此问题之前,我强烈建议您阅读更多有关如何避免SQL注入的信息。您的代码是针对这种攻击打开的,所以最好在使用数据库操作时考虑使用参数。请显示给您的错误。表是一个保留字——因此它的抱怨是因为您调用了您的表“如果您通过第一个问题,顺便说一下”可能的副本。你将面临另一个问题。您正在数据库中选择两列以将数据插入其中,但您正在传递三个参数!第三个参数适用于哪里?
{
String Source = @" Data Source = (LocalDB)\MSSQLLocalDB;" + @"AttachDbFilename=c:\users\meghanaa\source\repos\datagrid\datagrid\trialdatabase.mdf;" + "Integrated Security = True";
SqlConnection con_2 = new SqlConnection(Source);
con_2.Open();
for (int i = 0; i < dgv1.Rows.Count; i++)
{
cmd = new SqlCommand(@"INSERT INTO Table([sl],[quetions]) VALUES(@"+dgv1.Rows[i].Cells["sl"].Value+" , @"+dgv1.Rows[i].Cells["questions"].Value+",@"+ dgv1.Rows[i].Cells["op A"].Value + ")",con_2);
cmd.ExecuteNonQuery();
con_2.Close();
MessageBox.Show("data saved");
}
}