关于数据库操作的问题,请高手指教,看看这两名有什么不同?

xutaotao 2004-11-19 01:33:17
以下两段实现同样的功能:都是向数据库中插入记录,只是数据库不同,一个是SQL server 2000,一个是ACCESS,操作语句完全一样,为什么上句运行正常,而下句却报错?(数据库字段完全一致)

str = "INSERT INTO Record(姓名, 职务, 单位) VALUES ( '22','22','22')" ;
sqlInsertCommand1=new System.Data.SqlClient.SqlCommand(str,sqlConnection1);
sqlConnection1.Open ( ) ;
try
{
  sqlInsertCommand1.ExecuteNonQuery();;
}
catch(Exception ep)
{
  MessageBox.Show ( ep.Message ) ;
  return;
}
finally
{
  sqlConnection1.Close ( ) ;
}

str = "INSERT INTO Record(姓名, 职务, 单位) VALUES ( '22','22','22')" ;
oleDbInsertCommand1=new System.Data.OleDb.OleDbCommand(str,oleDbConnection1);
oleDbConnection1.Open ( ) ;
try
{
  oleDbInsertCommand1.ExecuteNonQuery();;
}
catch(Exception ep)
{
  MessageBox.Show ( ep.Message ) ; //捕获错误,ep.Message的值为"未知"?????????
  return;
}
finally
{
  oleDbConnection1.Close ( ) ;
}
...全文
95 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fellowcheng 2004-11-19
  • 打赏
  • 举报
回复
我刚才试了一下,"Access 中的insert的sql语句必须输入全部列名,不能省略"不对,可以的

你看一下是否数据类型不对
或是 values后面多了个空格
一半乐事 2004-11-19
  • 打赏
  • 举报
回复
access中改成这样试试:
str = "INSERT INTO Record VALUES ( '22','22','22')" ;
xutaotao 2004-11-19
  • 打赏
  • 举报
回复
To fellowcheng(头都编大了)
表中就只有三个字段,没有错误!
xutaotao 2004-11-19
  • 打赏
  • 举报
回复
sqlserver 和access 的链接我都 是通过向导来完成的,应该没有问题。
this.sqlConnection1.ConnectionString = "workstation id=XT;packet size=4096;integrated security=SSPI;data source=XT;persis" + "t security info=False;initial catalog=\"e-CARD\"";
this.oleDbConnection1.ConnectionString = @"Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=0;Data Source=""C:\Documents and Settings\Administrator\桌面\e-card\e-card\bin\Debug\Data.mdb"";Jet OLEDB:Engine Type=4;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;persist security info=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB:Global Bulk Transactions=1";
自动编号字段没有错误,况且我根本没有用到编号,我用的是字段名称呀!
fellowcheng 2004-11-19
  • 打赏
  • 举报
回复
Access 中的insert的sql语句必须输入全部列名,不能省略
fellowcheng 2004-11-19
  • 打赏
  • 举报
回复
你的表中是否有自动编号字段,有的话,好象在Access中要自己给他值
一半乐事 2004-11-19
  • 打赏
  • 举报
回复
MessageBox.Show ( ep.ToString());
一半乐事 2004-11-19
  • 打赏
  • 举报
回复
哦,没看清,会不会是你的oleDbConnection1有问题?
一半乐事 2004-11-19
  • 打赏
  • 举报
回复
sqlConnection1是什么,SQLServer和Access的连接是不一样的

110,538

社区成员

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

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

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