//连接数据库
string L_SqlString = "select * from Engineering where Engineering='" + L_Engineering + "'";
OleDbDataAdapter OleDbDr = new OleDbDataAdapter(L_SqlString ,DBConnection .OleDbConnSingle );
DataSet thisDataSet = new DataSet();
OleDbDr.Fill(thisDataSet,"gongcheng");
//如果数据库没有记录,则增加
if (thisDataSet.Tables["gongcheng"].Rows.Count <= 0)
{
DataRow thisDataRow = thisDataSet.Tables["gongcheng"].NewRow();
thisDataRow["Engineering"] = L_Engineering;
thisDataRow["Re"] = L_Re;
thisDataSet.Tables["gongcheng"].Rows.Add(thisDataRow);//到下边这步,程序就提示说:当传递具有新行的 DataRow 集合时,更新要求有效的 InsertCommand。
OleDbDr.Update(thisDataSet ,"gongcheng");
}我这个程序是参照《c#入门经典》上来的。
string L_SqlString = "select * from Engineering where Engineering='" + L_Engineering + "'";
OleDbDataAdapter OleDbDr = new OleDbDataAdapter(L_SqlString ,DBConnection .OleDbConnSingle );
DataSet thisDataSet = new DataSet();
OleDbDr.Fill(thisDataSet,"gongcheng");
//如果数据库没有记录,则增加
if (thisDataSet.Tables["gongcheng"].Rows.Count <= 0)
{
DataRow thisDataRow = thisDataSet.Tables["gongcheng"].NewRow();
thisDataRow["Engineering"] = L_Engineering;
thisDataRow["Re"] = L_Re;
thisDataSet.Tables["gongcheng"].Rows.Add(thisDataRow);//到下边这步,程序就提示说:当传递具有新行的 DataRow 集合时,更新要求有效的 InsertCommand。
OleDbDr.Update(thisDataSet ,"gongcheng");
}我这个程序是参照《c#入门经典》上来的。
顺便说一下,csdn的编辑器实在有点简陋,其他功能不方便增加,至少把编辑框拉宽一点啊。//连接数据库
string L_SqlString = "select * from Engineering where Engineering='" + L_Engineering + "'";
OleDbDataAdapter OleDbDr = new OleDbDataAdapter (L_SqlString ,DBConnection .OleDbConnSingle );//填充数据集
DataSet thisDataSet = new DataSet();
OleDbDr.Fill(thisDataSet,"gongcheng");
//如果数据库没有记录,则增加
if (thisDataSet.Tables["gongcheng"].Rows.Count <= 0)
{
//增加一个新行
DataRow thisDataRow = thisDataSet.Tables["gongcheng"].NewRow();
//为行中的字段赋值
thisDataRow["Engineering"] = L_Engineering;
thisDataRow["Re"] = L_Re;
//把新行添加到表中
thisDataSet.Tables["gongcheng"].Rows.Add(thisDataRow);//把数据更新到数据库中,/到这步,程序就出错了,提示说:当传递具有新行的 DataRow 集合时,更新要求有效的 InsertCommand。OleDbDr.Update(thisDataSet ,"gongcheng");
}
这段程序是参照《c#入门经典》上来的,请大家帮忙看看是什么原因。
OleDbCommandBuilder cb = new OleDbCommandBuilder(OleDbDr);//这样使用时需要给Engineering表设置主键
OleDbCommandBuilder cb = new OleDbCommandBuilder(da)
da.InsertCommand.CommandText
da.DeleteCommand.CommandText
da.UpdateCommand.CommandText
一样可以运行update();
前加句:OleDbCommandBuilder ocb = new OleDbCommandBuilder(OleDbDr);
试试
{
treeView.Update();
int j=this.treeView.Nodes.Count+1;
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=........\Data.mdb";
OleDbConnection objConnection = new OleDbConnection(strConnection);
objConnection.Open();
string InsertCommand = "INSERT INTO site (ID,基站名称,Longitude,Latitude,所属区) VALUES("+j+",'" + tBox1.Text + "' ," + tBox2.Text + " ," + tBox3.Text + ",'" + tBox4.Text + "')";
OleDbCommand myOleDbCommand = new OleDbCommand(InsertCommand,objConnection );
if(myOleDbCommand.ExecuteNonQuery()>0)
{
treeView.Nodes.Add(tBox1.Text);
treeView.ExpandAll();
}
tBox1.Text = " ";
tBox2.Text = " ";
tBox3.Text = " ";
tBox4.Text = " ";
treeView.Update(); objConnection.Close();
treeView.ExpandAll();
treeView.Update();
}
希望对你有帮助啊!给分哦!
也算张见识咯~~~