我有一段代码,可以通过ODBC连接使用参数将信息传递给MySQL命令。使用字符串surnameToLookFor传入的显示姓氏的示例代码:
using (OdbcConnection DbConn = new OdbcConnection( connectToDB ))
{
   OdbcDataAdapter cmd = new OdbcDataAdapter(
   "SELECT Firstname, Address, Postcode FROM customers WHERE Surname = ?", DbConn);
    OdbcParameter odbcParam = new OdbcParameter("surname", surnameToLookFor);
    cmd.SelectCommand.Parameters.Add(odbcParam);
    cmd.Fill(dsCustomers, "customers");
}我想知道的是,我是否可以指出我的参数应该放在哪里,而不仅仅是有一个?标记位置-因为我可以看到,如果有多个参数被替换,这将变得非常难以调试。
我想以如下方式为参数提供一个名称:
SELECT Firstname, Address, Postcode FROM customers WHERE Surname = ?surname ", 当我尝试这个的时候,它就卡住了。
下面的代码
    public System.Data.DataSet Customer_Open(string sConnString, long ld) 
    { 
        using (MySqlConnection oConn = new MySqlConnection(sConnString)) 
        { 
            oConn.Open(); 
            MySqlCommand oCommand = oConn.CreateCommand(); 
            oCommand.CommandText = "select * from cust_customer where id=?id"; 
            MySqlParameter oParam = oCommand.Parameters.Add("?id", MySqlDbType.Int32); 
            oParam.Value = ld; 
            oCommand.Connection = oConn; 
            DataSet oDataSet = new DataSet(); 
            MySqlDataAdapter oAdapter = new MySqlDataAdapter(); 
            oAdapter.SelectCommand = oCommand; 
            oAdapter.Fill(oDataSet); 
            oConn.Close(); 
            return oDataSet; 
        } 
    }来自http://www.programmingado.net/a-389/MySQL-NET-parameters-in-query.aspx,并包含以下片段
where id=?id这将是最理想的。
这是不是只能通过.Net连接器而不是ODBC获得?如果可以使用ODBC,我需要如何更改代码片段才能实现这一点?
发布于 2010-03-22 18:55:12
如果ODBC有这个功能就好了,但恐怕它没有。我在这里说的是C应用编程接口本身--我不知道是否有C#层添加了它。不过,编写自己的包装器函数来实现它的一个简单版本并不太难。
https://stackoverflow.com/questions/2491517
复制相似问题