日期:2014-05-18  浏览次数:20910 次

VB。NET的代码在fill那句出问题
Dim mycnn As New Data.OleDb.OleDbConnection()
  Dim mycommand As New Data.OleDb.OleDbCommand()
  Dim strcnn As String = "insert into message values('"
  Dim ds As New Data.DataSet()
  Dim dp As New Data.OleDb.OleDbDataAdapter()


  mycnn.ConnectionString = "Provider=microsoft.jet.oledb.4.0;" & "Data Source=D:\lyb\App_Data\message.mdb"

  strcnn = strcnn & 姓名.Text & "','" & 标题.Text & "','" & 内容.Text & "')"
  mycnn.Open()
  mycommand.CommandText = strcnn
  mycommand.Connection = mycnn
  dp.SelectCommand = mycommand
  dp.Fill(ds, "message")
  mycnn.Close()
红色那句出错,原因是:查询值的数目与目标字段中的数目不同。

------解决方案--------------------
VB我不太了解,不过我看了楼主的代码,发现一个问题,SQL查询后应该是返回一个datatable的,为什么楼主定义一个dataset呢。
我觉得应该把ds定义成一个datatable应该就没问题了。

dim ds as new system.data.datatable()

我觉得应该就对了,

仅供楼主参考,我没有试验,但用C#做过相关的程序(查询ACCESS数据库)