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

给数据库增加记录的有关问题

2012-01-08 
给数据库增加记录的问题//连接数据库stringL_SqlStringselect*fromEngineeringwhereEngineering+L_Eng

给数据库增加记录的问题
//连接数据库
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[ "Remark "]   =   L_Remark;
                                        thisDataSet.Tables[ "gongcheng "].Rows.Add(thisDataRow);

//到下边这步,程序就提示说:当传递具有新行的   DataRow   集合时,更新要求有效的   InsertCommand。
                                        OleDbDr.Update(thisDataSet   , "gongcheng ");
                                                           
                                       
                                }

我这个程序是参照《c#入门经典》上来的。

[解决办法]
还有这样增加呀?如果判断为空则直接用insert 增加不是更好?
[解决办法]
使用UPDATE来自动生成SQLCOMMAND时,需要先建立CommandBuilder的实例

OleDbDataAdapter da = new OleDbDataAdapter;
OleDbCommandBuilder cb = new OleDbCommandBuilder(da)
[解决办法]
update不配合OleDbCommandBuilder也是可以用的

使用OleDbCommandBuilder的目的是为了自动生成sql语句,但有一个前提是数据表必须有主键且主键必须包含在返回的结果集中

否则只要自己指定了
da.InsertCommand.CommandText
da.DeleteCommand.CommandText
da.UpdateCommand.CommandText
一样可以运行update();
[解决办法]
在OleDbDr.Update(thisDataSet , "gongcheng ");
前加句:OleDbCommandBuilder ocb = new OleDbCommandBuilder(OleDbDr);
试试


[解决办法]
private void Add_database()
{
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();

}
希望对你有帮助啊!给分哦!

热点排行