OleDbCommand为何一定要给值才能正常写入数据库

yuchongjike 2008-07-04 11:10:47
commandtext = "INSERT INTO m_ErrLog (日期,時間,操作,錯誤信息) VALUES ( ?, ?, ?, ?)";
command = new OleDbCommand(commandtext, MyConnect_DataBase);
command.Parameters.Add("1", OleDbType.Char, 10);
command.Parameters.Add("2", OleDbType.Char, 10);
command.Parameters.Add("3", OleDbType.Char, 255);
command.Parameters.Add("4", OleDbType.Char, 255);
command.Parameters.Value = DateTime.Now.ToString("yyyy-MM-dd");
command.Parameters.Value = DateTime.Now.ToString("HH:mm:ss");
command.Parameters.Value = "警告";
command.Parameters.Value = "不能正常加入";

DataSet1.Tables[0].Rows.Add(row);
Adapter.update(DataSet1);

//---------- 为何一定要给 command 值才能正常加进去??? 不给值就会提示:
The statement has been terminated.\r\nCannot insert the value NULL into column '錯誤信息', table 'MAC_Distribution.dbo.m_ErrLog'; column does not allow nulls. INSERT fails
...全文
62 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuchongjike 2008-07-04
  • 打赏
  • 举报
回复
我的意思是说:我不要红色字体的那部份为什么就不能正常添加???
ericzhangbo1982111 2008-07-04
  • 打赏
  • 举报
回复
command = new OleDbCommand(commandtext, MyConnect_DataBase);
command.Parameters.Add("1", OleDbType.Char, 10);
command.Parameters.Add("2", OleDbType.Char, 10);
command.Parameters.Add("3", OleDbType.Char, 255);
command.Parameters.Add("4", OleDbType.Char, 255);
command.Parameters[0].Value = DateTime.Now.ToString("yyyy-MM-dd");
command.Parameters[1].Value = DateTime.Now.ToString("HH:mm:ss");
command.Parameters[2].Value = "警告";
command.Parameters[3].Value = "不能正常加入";
greenery 2008-07-04
  • 打赏
  • 举报
回复
DataSet1.Tables[0].Rows.Add(row);
应该是你的row中,没有对[錯誤信息]列赋值吧?
对command的赋值是不是给出了默认值?当你没有对列赋值时,他使用了上面的默认值?

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧