.NET中,连接Sybase ASE数据库,作Insert或update操作,代码如下:
string str="Provider=Sybase.ASEOLEDBProvider;Server Name=192.168.0.3,6700;Pooling=true;Min Pool Size=10;Max Pool Size=100;Connection Lifetime=30;Initial Catalog=club;User Id=sa;Password=";
OleDbConnection conn=new OleDbConnection(str);
string sql="update web_guestbook set cont=? where id=1";
OleDbCommand cmd=new OleDbCommand(sql,conn);
cmd.Parameters.Add("cont",OleDbType.LongVarChar ).Value=this.textBox1.Text;
conn.Open();
try{cmd.ExecuteNonQuery();}
catch(Exception ed){MessageBox.Show(ed.Message );}
finally{conn.Close();}
在web_guestbook表中,cont为text字段,(ASE数据库好象不支持ntext字段?12.5版)
执行上面代码后,如果文本框中填的是全英文,则数据库可以正常写入,如果写入的有中文,则无法完全写入,比方说cont="你们好吗同志们?",则写入数据库的只有"你们好吗"四个字,究其原因,我想是因为text字段未支持Unicode,写入八个字,而数据库仅接收八个字符。如改Command.Parameter.OleDbType=LongVarWChar(即Unicode),则出错:"The given type name was unrecognized",而ASE数据库又不支持ntext字段,这个怎么好???
另一方面,如使用MS SQLSERVER数据库,即使是text字段,也可以完全写入(想不通)。
另外,如果不用代码,而使用工具箱中的OLEDBDataAdapter控件,并用其生成数据集,用OleDBDataAdapter.Update(),这样的话又可以完全写入(想不通!)数据适配器的updatecommand和InsertCommand也没什么特别,跟手写的sql一模一样.。
强烈请教!救人一命,胜造七级浮屠啊~~~~~阿弥陀佛!!!!
转载于:https://www.cnblogs.com/uncleson/archive/2006/07/06/443977.html