读书人

mysql参数化查询语句有关问题

发布时间: 2014-01-13 17:16:02 作者: rapoo

mysql参数化查询语句问题
部分代码如下:
using (MySqlConnection conn = new MySqlConnection(connectionString))
{
conn.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = conn;
MySqlTransaction ts = conn.BeginTransaction();
try
{
for (int i = 0; i < dt.Rows.Count; i++)
{
cmd.Parameters.AddWithValue("?PrimaryID",dt.Rows[i][1]);
cmd.CommandText = "select * from infomine_bulletin where PrimaryID=?PrimaryID";
object ob = cmd.ExecuteScalar();
返回的Ob为空,但我确实在infomine_bulletin表中能够查询到此条数据,console.writeline(cmd.Parameters["PrimaryID"].value)确实已经赋值,select语句失败

[解决办法]

   public int UpdateDishe(string dishUnitID, string dishNO, string dishNameCH, string dishNameEN, string py, string price, string cookingTime, string eatingTime, string inMenu, string UserID) 
{
MySqlConnection conn = DBManager.GetConn();
try
{
string sql = "update dishes,dishunit set dishes.dishNO=?dishNO,dishes.nameCH=?dishNameCH, dishes.nameEN=?dishNameEN, dishes.py=?py ,dishunit.price=?price, dishunit.cookingTime=?cookingTime, dishunit.eatingTime=?eatingTime, dishunit.inMenu=?inMenu,dishunit.userID=?UserID,dishes.userID=?UserID,dishes.timestamp=now(),dishunit.timestamp=now() where dishes.dishID=dishunit.dishID and dishunit.dishUnitID=?dishUnitID";
MySqlCommand comm=new MySqlCommand (sql, conn);
comm.Parameters.Add(new MySqlParameter("dishNO", dishNO));
comm.Parameters.Add(new MySqlParameter("dishNameCH", dishNameCH));
comm.Parameters.Add(new MySqlParameter("dishNameEN", dishNameEN));
comm.Parameters.Add(new MySqlParameter("py", py.ToUpper()));
comm.Parameters.Add(new MySqlParameter("price", price));
comm.Parameters.Add(new MySqlParameter("cookingTime", cookingTime));
comm.Parameters.Add(new MySqlParameter("eatingTime", eatingTime));
comm.Parameters.Add(new MySqlParameter("inMenu", inMenu));
comm.Parameters.Add(new MySqlParameter("UserID", UserID));


comm.Parameters.Add(new MySqlParameter("dishUnitID", dishUnitID));
return comm.ExecuteNonQuery();
}
catch (Exception)
{
return -1;
throw;
}
finally
{
conn.Close();
}
}




这样传参mysql注意?英文的?
[解决办法]
你确定你是这样写的?


[解决办法]

自己看官网,如果是非官网的内容,我从来不信:http://dev.mysql.com/doc/refman/5.0/en/connector-net-programming-prepared.html
哈哈~~官网的这个页面里,只是举了个用例子,里面用@参数名进行参数化,但并没有哪句话钦定这就是标准写法,也没有说?参数名不能用。事实上用“?参数名”这种形式从来都没有问题的。mysql参数化查询语句有关问题

读书人网 >C#

热点推荐