c#中,怎么用dataset(ado.net)向表中插入多条记录?不要用存储过程。
在网上我看了dataset更新的例子,都是先查询出来,修改一下,然后update,由于我是先显示数据,然后对其做一番修改(可能间隔很长的时间),dataset已经不存在了,需要新建一个吧,但是我操作没有成功。表table1含有3个字段(col1,col2,col3),向数据库中新增多条记录。
请给予指点,给出代码示例
在网上我看了dataset更新的例子,都是先查询出来,修改一下,然后update,由于我是先显示数据,然后对其做一番修改(可能间隔很长的时间),dataset已经不存在了,需要新建一个吧,但是我操作没有成功。表table1含有3个字段(col1,col2,col3),向数据库中新增多条记录。
请给予指点,给出代码示例
那你的数据在哪显示?DataGridView中?
//adapter 就是DataAdapter... ds就是DataSet... 捆绑在了DataGirdView中~
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
adapter.Update(ds);
就是因为麻烦,我才想这个办法的。对,在DataGridView中显示,我的dataset是在一个按钮事件中定义的,按钮结束了就不存在了
对5楼我的理解是:一旦绑定到DataGridView中,这个dataset就一直存在吗?
PS:LZ头像中的熊猫很可爱
请给予指点,给出代码示例
这个也是我目前想知道的,如果是固定的值,用数组和循环可以搞定,但添加的记录可多可少,如何智能的读取和插入表中呢??
虽然吧dataset/table给绑定到datagridview中了,即使dataset/table真的存在的话,从绑定到datagridview时到提交更新数据库,这期间可能别的用户修改了数据库表中的记录怎么避免这种情况,如果我吧dataset定义为窗体级的变量,这个变量在窗体关闭之前就一直存在,我修改dataset再用dataadapter更新,这样如何,要是期间别人动了数据库也没关系吗?
DataSet是吧数据库虚拟到内存中.
用adapter.update()方法就可以对在虚拟数据库中的修改保存进去.也就是说Dataset是什么数据了就保存到数据库什么数据
以下是一个Sava例子,但愿对你有所帮助 this.dgvSysSet.EndEdit();//加上此行能把当前正在编辑的单元格的新值保存到数据库
this.BindingContext[myDataSet, "tabpaseh"].Position = this.dgvSysSet.CurrentCell.RowIndex;
this.BindingContext[myDataSet, "tabpaseh"].EndCurrentEdit(); DataTable ChgObjPaSeh = this.myDataSet.Tables["tabpaseh"].GetChanges();
if (ChgObjPaSeh != null)
{
//if (Program.myConn.State.ToString() =0)
//{
// Program.myConn.Open();
//} MyDataAdapterSysSet.ContinueUpdateOnError = true;
try
{
if (ChgObjPaSeh != null)
{
MyDataAdapterSysSet.Update(ChgObjPaSeh);
myDataSet.Merge(ChgObjPaSeh);
myDataSet.AcceptChanges();
MessageBox.Show("保存成功!", "保存提示");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
myDataSet.Tables["tabpaseh"].RejectChanges();
} }
你说的没关系是指“操作不会发生错误”,是这个意思吧?但是逻辑上呢?举例说
表里面有两条数据,row1,row2;我全部查询出来,存放在dataset中,然后,我通过某种方法,向dataset中对应的表增加一条记录newRow3,现在共存在着3条记录.
此时,别人操作数据库,删除了表中的row2.我用dataset更新数据库表之后,表中还存在row2吗??