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是显示的是修改之后的结果,但是当我打开数据库时,发现数据并没有更新。
...全文
186 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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中生成了一个更新了的数据库但是我想要的是对源数据库文件进行更新。
threenewbee 2016-05-03
  • 打赏
  • 举报
回复
用update 表 set 字段=值 where id=xxx的sql更新

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧