dataset更新数据库不成功问题???

朔北冥 学生  2016-05-03 11:16:57
我通过代码将dataset保存至数据库中,但是我打开数据库(.mdb格式的)却还是原来的数据,这是怎么回事?
代码:



public Form1()
{
InitializeComponent();

}
public static DataSet ds;
public static DataRow[] dr;
public static OleDbDataAdapter da;
public static int i = 0;
public static int n = 1;


//更新数据
public void updategvd()
{

dgv.DataSource = ds.Tables[0];
}


//获得textbox中内容


public string[] textGet()
{
string[] str=new string[6];
str[0] = Name.Text.ToString(); str[1] = Sex.Text.ToString(); str[2] = HomeTel.Text.ToString();
str[3] = OfficeTel.Text.ToString(); str[4] = Mark.Text.ToString();
return str;
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: 这行代码将数据加载到表“telephoneDataSet.telephoneinfo”中。您可以根据需要移动或删除它。
this.telephoneinfoTableAdapter.Fill(this.telephoneDataSet.telephoneinfo);//自动添加??
enter form = new enter();
form.ShowDialog();
if (enter.flag == 0)
{
this.Close();
}
dgv.DataSource = bandsource().Tables["phone"];
}
public DataSet bandsource()
{
string str = "provider=Microsoft.Jet.OLEDB.4.0; data Source=telephone.mdb; Persist Security Info=False";
OleDbConnection conn = new OleDbConnection(str);
ds = new DataSet();
try
{
conn.Open();
string sqlstr = "select telephoneinfo.PersonID as 自动编号,telephoneinfo.Name as 姓名,telephoneinfo.Sex as 性别,telephoneinfo.OfficeTel as 办公室电话,telephoneinfo.HomeTel as 家庭电话,telephoneinfo.Mark as 备注 from telephoneinfo order by PersonID";
da = new OleDbDataAdapter(sqlstr, conn);
da.Fill(ds, "phone");
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
finally
{
conn.Close();
}
return ds;
}
private void save_Click(object sender, EventArgs e)
{
OleDbCommandBuilder builder = new OleDbCommandBuilder(da);
da.Update(ds, "phone");
ds.AcceptChanges();
}

private void updateData_Click(object sender, EventArgs e)
{
ds.Clear();
da.Fill(ds, "phone");
dgv.DataSource = ds.Tables["phone"];
}



其中我通过update来更新数据dataset是显示的是修改之后的结果,但是当我打开数据库时,发现数据并没有更新。
...全文
107 点赞 收藏 8
写回复
8 条回复
範先森 2016年05月04日
你数据库update语句都没有啊,updateData_Click事件中加入update语句,可以参考你写的select那部分
回复 点赞
shoppo0505 2016年05月04日
你没有把dataset存入数据库的操作啊
回复 点赞
朔北冥 2016年05月04日
我表述有些问题 主要的保存代码:

 private void save_Click(object sender, EventArgs e)
        {
            OleDbCommandBuilder builder = new OleDbCommandBuilder(da);
            da.Update(ds, "phone");
            ds.AcceptChanges();
        }
我发现在我的Debug目录下自动有更新了的数据库文件,但是在我的源数据库文件中却没有保存,这是怎么回事?
回复 点赞
物联网_咸鱼 2016年05月04日
大哥,你只是操作了dataset,并没有更新数据库的操作。dataset只是你加载到内存的数据
回复 点赞
为轮子而生 2016年05月04日
哪个地方更新数据库了?既没有看到Insert语句,也没有Set语句
回复 点赞
nurotron_zhj 2016年05月04日
你的update事件里没有进行数据库的更新操作啊,你只是datagridview更新了,没有Insert或者Update操作
回复 点赞
朔北冥 2016年05月04日
好吧,我好像没有搞明白,我只是更新了dataset中的数据,那么,怎么更新源数据库呢? 我查看了一下我的Debug中生成了一个更新了的数据库但是我想要的是对源数据库文件进行更新。
回复 点赞
用update 表 set 字段=值 where id=xxx的sql更新
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告