首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

OleDbDataAdapter.update有关问题

2012-03-07 
OleDbDataAdapter.update问题在使用OleDbDataAdapter.update时候出现了一些问题,向各位大侠求助!问题描述:

OleDbDataAdapter.update问题
在使用OleDbDataAdapter.update时候出现了一些问题,向各位大侠求助!
问题描述:对数据库进行修改或添加,当表中没有记录时,添加一行;当表中有记录时候,将第一行记录数据修改.问题出现在当表中已有记录时候,提醒OleDbDataAdapter.update出错,出错信息为"对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。"
涉及代码如下,请高手指教!  
  private void button1_Click(object sender, EventArgs e)
  {
  if (ProNameTxt.Text == "" || comboBox1.Text == "") MessageBox.Show("请输入完整信息!");
  else
  {
  string strCon = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + @"\work\temp.mdb";
  OleDbConnection myConn = new OleDbConnection(strCon);
  DataSet myDataSet = new DataSet();
  string strCom = "SELECT * FROM 工程系统参数表";
  OleDbDataAdapter MyAdapter = new OleDbDataAdapter(strCom, myConn);
  OleDbCommandBuilder builder = new OleDbCommandBuilder(MyAdapter);
  myConn.Open();
  MyAdapter.Fill(myDataSet, "项目基本信息表");
  if (myDataSet.Tables["项目基本信息表"].Rows.Count >0)
  {
  myDataSet.Tables["项目基本信息表"].Rows[0][0] = ProNameTxt.Text;
  myDataSet.Tables["项目基本信息表"].Rows[0][1] = comboBox1.Text;
  myDataSet.Tables["项目基本信息表"].Rows[0][2] = Convert.ToDouble(textBox1.Text) / 100;
  MessageBox.Show(myDataSet.Tables["项目基本信息表"].Rows[0][0].ToString());
  }
  else
  {
  DataRow mydatarow = myDataSet.Tables["项目基本信息表"].NewRow();
  mydatarow[0] = ProNameTxt.Text;
  mydatarow[1] = comboBox1.Text;
  mydatarow[2] = Convert.ToDouble(textBox1.Text) / 100;
  myDataSet.Tables["项目基本信息表"].Rows.Add(mydatarow);
  }
  MyAdapter.Update(myDataSet,"项目基本信息表"); //出错行
  myConn.Close();
  }
  }

[解决办法]
数据库需要建主键
[解决办法]
\work\temp.mdb 中的 工程系统参数表 没有设置主键

热点排行