• C#开发MySQL数据库程序时需要注意的几点


    一:引用MySQL使用基于Parameter方式代码,总是提示:“Column '列名'cannot be null”解决


     

    MySQL使用基于Parameter方式代码,总是提示:“Column '列名' cannot be null”
     
    解决方法1:直接在连接字符串里面加一个 oldsyntax=true  即可。
     
    例如:
    1
    server=127.0.0.1;user id=root;password=;database=itemdb;oldsyntax=true
     
    解决方法2:将语句中的 @ 替换为 ?
     
    例如:
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    StringBuilder strSql=new StringBuilder();
     
    strSql.Append("insert into test(");
     
    strSql.Append("name)");
     
    strSql.Append(" values (");
     
    strSql.Append("?name)");
     
    MySqlParameter[] parameters = {
     
      new MySqlParameter("?name", MySqlDbType.VarChar,45)};
     
    parameters[0].Value = model.name;
     
    DbHelperMySQL.ExecuteSql(strSql.ToString(),parameters);

    二:使用Odbc链接mysql时parameter参数设置

       当用ODBC链接MySQL时,@Parameter设置sql参数时却发现值无法传达到数据库,原来MySql搞特殊化用的是?号。网上说用?Parameter代替@Parameter,但试了还是不行,最后得出结论是直接用?号就好了,下面是例子:

    insert into table_name(name,intro) values(?,?)

    cmd.Parameters.Add("1","value1");

    cmd.Parameters.Add("2","value2");

    既然parameter参数全部为?号,那么设置参数值时就只能按顺序了,不像@Parameter那样可以用键值对来对应。

    如果用MySqlContector时操作就不同咯。。。。。。。就是第一种方式。

  • 相关阅读:
    C#之时间统计
    Unity之屏幕画线
    Unity之坐标转换
    Unity3d之按键
    Unity3d之截图
    [Windows]A盘凭空消失
    函数的多类型传值
    isdigit()
    函数的返回值
    locals()
  • 原文地址:https://www.cnblogs.com/coolsundy/p/4097691.html
Copyright © 2020-2023  润新知