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

时间:2013-06-18 18:45:54

标签: 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);

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

da2.ExecuteReader();

ID中的数据看起来像

ID
43PCOU5T
ZP6RAEJ0

由于某些原因,这两种查询都失败了这些数据。

1 个答案:

答案 0 :(得分:8)

您缺少select命令中的单引号,这就是原始SELECT失败的原因。不过,我想请注意,您应始终在SqlCommand语句中对SqlConnection / using进行参数化和封装。以下是解决问题的更安全更清晰的方法。

        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());
        }

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

MSDN Reference for the using keyword

MSDN Reference for SqlCommand - 查看Parameters属性。