Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.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# DataAdapter.Fill语法错误_C#_Asp.net_Dataadapter - Fatal编程技术网

C# DataAdapter.Fill语法错误

C# DataAdapter.Fill语法错误,c#,asp.net,dataadapter,C#,Asp.net,Dataadapter,所以 尝试编写一个非常简单的方法来更新数据库中的单个列。在下面的注释行附近,我不断得到一个运行时错误“Syntax error” public void SaveStatus(string id, string step) { // assuming that there is only one matching student ID connect = new SqlConnection(connectionString); connec

所以

尝试编写一个非常简单的方法来更新数据库中的单个列。在下面的注释行附近,我不断得到一个运行时错误“Syntax error”

public void SaveStatus(string id, string step)
    {
        // assuming that there is only one matching student ID
        connect = new SqlConnection(connectionString);
        connect.Open();
        dataSet = new DataSet();
        string command = "SELECT * FROM tblSubmissions WHERE Id = " + id;
        dataAdapter = new SqlDataAdapter(command, connect);

        dataAdapter.Fill(dataSet, "tblSubmissions");  // syntax error near here

        dataSet.Tables[0].Rows[0]["StatusID"] = step;

        dataAdapter.Update(dataSet, "tblSubmissions");
        dataAdapter.Dispose();
        connect.Close();
        connect.Dispose();

    }
希望有人能指出我缺少的明显问题

查询应该是
“从tblSubmissions中选择*,其中Id='Id\u value'
-您缺少
Id
值周围的引号

使用参数化查询而不是字符串连接来修复问题并消除SQL注入问题:

SqlCommand cmd = new SqlCommand("SELECT * FROM tblSubmissions WHERE Id = @id" , connect);
cmd.Parameters.Add("@id", SqlDbType.UniqueIdentifier);
cmd.Parameters["@id"].Value = id;

发布准确的错误。运行时错误!=语法错误,因此它在SQL中。发布创建表脚本。调试并检查
Id
变量是什么?您应该使用参数化查询,而不是传递字符串。错误是:System.Data.SqlClient.SqlException:靠近“bba6323c0”Id is varchar column的语法不正确?删除第二个参数
Fill()
方法的ter(
“tblSubmissions”
)并检查。感谢Marek。因此,我意识到我保存此值的表中的数据类型是Guid,因此即使您对我提出的问题给出了最好的答案,我还是有点执着于此(因为没有SqlDbType.Guid)@deadEddie我认为在这种情况下,您需要使用
SqlDbType.UniqueIdentifier