当前位置:编程学习 > C#/ASP.NET >>

调用informix出现在的问题

下面是我写的一个关于读取informix数据库存储过程的调用,采用直接执行sql的方法.rolName获取的是中文.在web上执行无效,在数把库端用execute procedure updaterncchildpri_test("武汉") 可以运行.希望遇到同样问题的朋友或高手能给点意见和解决方法.因网上的资料有限,现在急着用,
public void ExcuseRole(string roleName,string connectionString)
{
         using (OleDbConnection conn = new OleDbConnection(connectionString))
                {
                    string commandString ="string.Format("execute procedure updaterncchildpri_test ('{0}')",roleName);
                    OleDbCommand cmd = new OleDbCommand(commandString, conn);
                    //cmd.CommandType = CommandType.StoredProcedure;
                    //IDataParameter[] parmeter ={  new OleDbParameter(defineName,OleDbType.VarChar,10),
                    //                              new OleDbParameter("rval",OleDbType.VarChar,20)};
                    //parmeter[0].Value = ToInformixValid(roleName);
                    //cmd.Parameters.Add(parmeter[0]);
                    //parmeter[1].Direction = ParameterDirection.ReturnValue;
                    //cmd.Parameters.Add(parmeter[1]);
                    cmd.ExecuteNonQuery();
               }
}



当然我将获取的rolename进行下面的转换也无效
 public string ToInformixValid(string str)
        {
            Encoding e8859Encode = Encoding.GetEncoding("iso-8859-1");
            Encoding defEncode = Encoding.Default;
            byte[] srcBytes = defEncode.GetBytes(str);
            return e8859Encode.GetString(srcBytes);
        } --------------------编程问答-------------------- 沉了吗?怎么没人回答
--------------------编程问答--------------------  public string ToInformixValid(string str)
  {
  Encoding e8859Encode = Encoding.GetEncoding("UTF-8");  Encoding defEncode = Encoding.Default;
  byte[] srcBytes = defEncode.GetBytes(str);
  return e8859Encode.GetString(srcBytes);
  }

这样嘞 --------------------编程问答-------------------- 你这样是原本的编码,没有用的,我那个编码才能用.当然补充一下,我的存储过程有返回值,
create procedure update_test(rolename varchar(255))
returning varchar(255);
define ret varchar(255);
let ret = "update role:" || rolename;
...
let ret = ret || " insert ok.";
end procedure;
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,