首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2014-01-13 
mysql参数化查询语句问题部分代码如下:using (MySqlConnection conn new MySqlConnection(connectionStr

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参数化查询语句有关问题

热点排行