C# 在SQL表中插入数据时出错

C# 在SQL表中插入数据时出错,c#,.net,sql-server,ado.net,C#,.net,Sql Server,Ado.net,我试图通过c#code将数据插入一个表(比如feedback),其中包含来自(int)和消息(Varchar(MAX))的列,但它不断地以错误困扰着我。请帮帮我,我很绝望 表说明: 从int开始,消息Varchar(最大值) 我正在使用的代码: 我得到的错误是 System.Data.SqlClient.SqlException(0x80131904):语法不正确 关键字“From”。在 System.Data.SqlClient.SqlConnection.OnError(SqlExcepti

我试图通过c#code将数据插入一个表(比如feedback),其中包含来自(int)和消息(Varchar(MAX))的列,但它不断地以错误困扰着我。请帮帮我,我很绝望

表说明: 从int开始,消息Varchar(最大值)

我正在使用的代码: 我得到的错误是

System.Data.SqlClient.SqlException(0x80131904):语法不正确 关键字“From”。在 System.Data.SqlClient.SqlConnection.OnError(SqlException异常, 布尔断开连接)在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 异常,布尔断开连接)位于 System.Data.SqlClient.TdsParser.throweexception和warning()位于 System.Data.SqlClient.TdsParser.Run(RunBehavior, SqlCommand cmdHandler、SqlDataReader数据流、, BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject (b)在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, 运行行为运行行为,字符串重置选项字符串)位于 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior、RunBehavior、Boolean returnStream、Boolean 异步)在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior、布尔返回流、字符串 方法,DbAsyncResult(结果)位于 System.Data.SqlClient.SqlCommand.InternalExecuteOnQuery(DbAsyncResult 结果,字符串methodName,布尔sendToPipe)位于 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()位于 _默认.Button1\u在c:\Users\Ajaz\Documents\Visual Studio中单击(对象发送者,事件参数e) 2010\WebSites\WebSite26\Default.aspx.cs:第29行

我猜有一个错误与数据不匹配有关。请帮忙。 感谢

FROM
是TSQL中的一个。您应该将其与方括号一起使用,如
[FROM]

string query="insert into Feedback ([From],Message) values(@frm,@msg)";
作为一般建议,不要在数据库中为标识符和对象名使用保留关键字

还可用于处置
SqlConnection

string query = "insert into Feedback ([From],Message) values(@frm,@msg)";
using(SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["SampleConnectionString"].ConnectionString))
{
  SqlCommand comm = new SqlCommand(query, con);
  comm.Parameters.AddWithValue("@frm", Convert.ToInt32(TextBoxid.Text));
  comm.Parameters.AddWithValue("@msg",TextBoxFeedBack.text);
  con.Open();
  comm.ExecuteNonQuery();
  con.Close();
}
FROM
是TSQL中的一个选项。您应该将其与方括号一起使用,如
[FROM]

string query="insert into Feedback ([From],Message) values(@frm,@msg)";
作为一般建议,不要在数据库中为标识符和对象名使用保留关键字

还可用于处置
SqlConnection

string query = "insert into Feedback ([From],Message) values(@frm,@msg)";
using(SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["SampleConnectionString"].ConnectionString))
{
  SqlCommand comm = new SqlCommand(query, con);
  comm.Parameters.AddWithValue("@frm", Convert.ToInt32(TextBoxid.Text));
  comm.Parameters.AddWithValue("@msg",TextBoxFeedBack.text);
  con.Open();
  comm.ExecuteNonQuery();
  con.Close();
}
“From”是保留字。用方括号将其包围:

string query="insert into Feedback ([From],Message) values(@frm,@msg)";
“From”是保留字。用方括号将其包围:

string query="insert into Feedback ([From],Message) values(@frm,@msg)";

嗯,单词FROM是世界上任何SQL语言中的一个众所周知的关键字。如果您想使用它(非常糟糕的移动),那么您需要将其封装在方括号中

string query="insert into Feedback ([From],Message) values(@frm,@msg)";
同样,不要这样做,在需要更改大量代码之前更改列的名称。

否则,在应用程序的整个生命周期中,您都会遇到此问题。

嗯,FROM这个词在世界上任何SQL语言中都是众所周知的关键字。如果您想使用它(非常糟糕的移动),那么您需要将其封装在方括号中

string query="insert into Feedback ([From],Message) values(@frm,@msg)";
同样,不要这样做,在需要更改大量代码之前更改列的名称。
否则,在应用程序的生命周期内,您将遇到此问题