问题描述
我使用如下的语句更新数据表时,数值、时间、逻辑类型的可以更新,但是字符类型的不能更新,不知道为什么?希望高手指点,其中System.Data.OleDb.OleDbCommandBuildermyCommandBuilder;myDataAdapter=newOleDbDataAdapter(ShowSql,conn);datagridview1.EndEdit();//生成Delete/Update/Insert操作的CommandmyCommandBuilder=newSystem.Data.OleDb.OleDbCommandBuilder(myDataAdapter);//myCommandBuilder.GetDeleteCommand=myDataAdapter.DeleteCommand=myCommandBuilder.GetDeleteCommand();myDataAdapter.UpdateCommand=myCommandBuilder.GetUpdateCommand();myDataAdapter.InsertCommand=myCommandBuilder.GetInsertCommand();try{//保存到数据库myDataAdapter.Update(myDataSet,tablename);myDataSet.AcceptChanges();//myDataAdapter.Update(myDataSet.Tables[tablename]);}catch(Exceptionerr){myCommandBuilder.Dispose();MessageBox.Show(err.Message,"错误信息",System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Exclamation);return;}
解决方案
解决方案二:
注意你读出的字符串的长度,用string.trim()剪掉后面的无用字符
解决方案三:
所有字符型数据我提取时已经去掉空格了。而且myDataAdapter.DeleteCommand=myCommandBuilder.GetDeleteCommand();myDataAdapter.UpdateCommand=myCommandBuilder.GetUpdateCommand();myDataAdapter.InsertCommand=myCommandBuilder.GetInsertCommand();都是系统根据showsql自动生成的,保存时我也不知道该如何再次去掉空格
解决方案四:
怎么没有人回答