Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL语法在哪里?_C#_Asp.net_Sql Server_Visual Studio - Fatal编程技术网

C# SQL语法在哪里?

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"]

我是这里的新手,可能是因为我从昨天早上就起床了,但我在这个insert语句中找不到我的错误。我的处理程序要求我不要为这个培训项目参数化(它不会被部署),所以不用担心注入漏洞。无论如何,查询是正确的,数据类型正确,表名和字段名拼写正确。我错过了什么?有没有比盯着屏幕直到它出现更好的方法找到它

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;