C# SQL语法在哪里?
我是这里的新手,可能是因为我从昨天早上就起床了,但我在这个insert语句中找不到我的错误。我的处理程序要求我不要为这个培训项目参数化(它不会被部署),所以不用担心注入漏洞。无论如何,查询是正确的,数据类型正确,表名和字段名拼写正确。我错过了什么?有没有比盯着屏幕直到它出现更好的方法找到它C# SQL语法在哪里?,c#,asp.net,sql-server,visual-studio,C#,Asp.net,Sql Server,Visual Studio,我是这里的新手,可能是因为我从昨天早上就起床了,但我在这个insert语句中找不到我的错误。我的处理程序要求我不要为这个培训项目参数化(它不会被部署),所以不用担心注入漏洞。无论如何,查询是正确的,数据类型正确,表名和字段名拼写正确。我错过了什么?有没有比盯着屏幕直到它出现更好的方法找到它 protected void BtnSubmit_Click(object sender, EventArgs e) { string x = Request.QueryString["SubId"]
protected void BtnSubmit_Click(object sender, EventArgs e)
{
string x = Request.QueryString["SubId"];
string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
string comQuery = "INSERT INTO Submission (Status, StatusComment, StatusValue) VALUES ('" + "decline" + "', '" + TbComments.Text + "', 2) WHERE SubmissionId =" + x;
using (SqlConnection sqlConn = new SqlConnection(connectionString))
{
sqlConn.Open();
using (SqlCommand comCmd = new SqlCommand(comQuery, sqlConn))
{
comCmd.ExecuteNonQuery();
}
}
}
INSERT
不能有WHERE
子句。有一个是没有意义的,你是在把数据放进去,而不是缩小范围
如果您试图更改先前存在的数据,这是一个更新
,而不是插入
。下面是一个例子:
"UPDATE Submission
SET Status='decline', StatusComment='" + TbComments.Text + "', StatusValue = 2
WHERE SubmissionId = " + x
您需要使用更新,而不是插入 插入新行,因此WHERE没有意义因此您的SQL语句是:
“在SubmissionId=“+x;
问题肯定是在哪里
<代码>其中对插入无效。由于您是按SubmissionId进行筛选的,因此您可能希望改为执行更新
至于找到问题的更好方法,学习使用MSDN文档是一个很好的步骤。在谷歌上快速搜索“msdn t-sql insert”将为您提供我在本答案前面链接的页面。文档、经验、Google和堆栈溢出。这就是找到解决方案的方法:)插入查询中不允许Where子句。我想您需要使用更新查询来形成代码。这是不正确的插入语法。正确的插入语法是:
INSERT INTO tableName (columnList) VALUES (valueList)
columnList和valueList必须具有相同的项目计数,并且值必须是列所期望的类型
或
columnList和columnList2必须具有相同类型的相同项目计数。您可以在多个表上使用任何复杂的select JOIN,并对这些表中的数据应用条件。您正在尝试将TbComments中的数据插入到提交数据中。因此,您需要从TbComments中选择数据,然后插入到Submission中
string comQuery =
"INSERT INTO Submission (
Status,
StatusComment,
StatusValue)
SELECT
'decline',
TbComments.Text,
2)
FROM TbComments
WHERE SubmissionId =" + x;
string comQuery =
"INSERT INTO Submission (
Status,
StatusComment,
StatusValue)
SELECT
'decline',
TbComments.Text,
2)
FROM TbComments
WHERE SubmissionId =" + x;