1

我正在尝试使用看起来像的 where 子句执行 SQL 语句

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

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

da2.ExecuteReader();

ID中的数据看起来像

ID
43PCOU5T
ZP6RAEJ0

由于某种原因,这两个查询都未能处理这类数据。

4

1 回答 1

8

您在选择命令中缺少单引号,这导致您的原始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());
        }

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

using关键字的 MSDN 参考

MSDN Reference forSqlCommand -- 查看Parameters属性。

于 2013-06-18T18:50:50.237 回答