SqlDataAdapter,SqlCommand从字符串中删除前导数字

Huz*_*ifa 1 c# sqlclient

我试图用一个看起来像的where子句执行一个SQL语句

 string s2 = "Select * from idtyfile where oysterid=" + id ;
 SqlCommand da2 = new SqlCommand(s2, con); or 
 SqlAdapter da2 = new SqlAdapter(s2, con);
Run Code Online (Sandbox Code Playgroud)

当我尝试执行它们时,这两个都失败了

da2.ExecuteReader();
Run Code Online (Sandbox Code Playgroud)

ID中的数据看起来像

ID
43PCOU5T
ZP6RAEJ0
Run Code Online (Sandbox Code Playgroud)

由于某些原因,这些查询都失败了这些类型的数据.

Eva*_*n L 8

您缺少select命令中的单引号,这是原始SELECT失败的原因.但是我想请注意,您应该始终参数化并将SqlCommand/ 封装SqlConnectionusing语句中.以下将是一种更清晰,更安全的方法来解决您的问题.

        string s2 = "Select * from idtyfile where oysterid=@id";
        DataTable myDataTable = new DataTable();

        using (SqlConnection conn = new SqlConnection(myConnectionString))
        using (SqlCommand cmd = new SqlCommand(s2, conn))
        {
            cmd.Parameters.AddWithValue("@id", id);
            conn.Open();
            myDataTable.Load(cmd.ExecuteReader());
        }
Run Code Online (Sandbox Code Playgroud)

对于某些教育资源,您应该查看以下链接.

MSDN参考using关键字

MSDN参考SqlCommand - 查看Parameters属性.