C# 无法插入到我的数据库表中

C# 无法插入到我的数据库表中,c#,asp.net,database,C#,Asp.net,Database,我正在尝试将文本框值插入数据库。但是有人提示我“关键字'table'附近的语法不正确” “cmd.ExecuteNonQuery();”有错误,我的代码怎么了 下面是我的代码: string query; string str = "Data Source=blank blank blank;Initial Catalog=test;User ID=hello;Password=password"; SqlConnection con = new SqlConnection(str); con.

我正在尝试将文本框值插入数据库。但是有人提示我“关键字'table'附近的语法不正确” “cmd.ExecuteNonQuery();”有错误,我的代码怎么了

下面是我的代码:

string query;
string str = "Data Source=blank blank blank;Initial Catalog=test;User ID=hello;Password=password";
SqlConnection con = new SqlConnection(str);
con.Open();
query = "INSERT INTO table dbo.url_map Values ('" + tbLongURL.Text + "')";
SqlCommand cmd = new SqlCommand(query, con);
cmd.ExecuteNonQuery();
con.Close();
正确的语法是

query = "INSERT INTO dbo.url_map Values ('" + tbLongURL.Text + "')";
基本上,您在查询中添加了单词“table”,这不是SQL语法。是的


插入到tablename中

您没有转义文本,这不仅会中断SQL查询,而且如果输入未被清理,您很容易受到SQL注入的攻击。你应该做什么:

string query;
string str = "Data Source=blank blank blank;Initial Catalog=test;User ID=hello;Password=password";
SqlConnection con = new SqlConnection(str);
con.Open();
query = "INSERT INTO dbo.url_map Values (@Url)";
SqlCommand cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("@Url", tbLongURL.Text);
cmd.ExecuteNonQuery();
con.Close(); 

dbo.url\u映射表中,是否只有一列?如果此表有其他列,可以尝试此查询

INSERT INTO dbo.url_map(login) VALUES('" + tbLogonURL.Text + "')";

因为当您没有指定要插入的列日期时,DB将尝试为表的所有列指定日期,如果您有列id、登录和通过,它将无法为id和通过指定日期,这可能会导致插入错误。

我已编辑了您的标题。请参阅“”,其中一致意见是“不,他们不应该”。您应该使用参数将值传递给SqlCommand。现在的错误不是表,而是url\u映射。我的查询出了什么问题?一开始我没有捕获它,但是
INSERT-INTO-table dbo.url\u-map
应该是
INSERT-INTO-dbo.url\u-map