【问题标题】:Successfully Updated on DGV but not on Database [duplicate]在 DGV 上成功更新,但在数据库上没有更新 [重复]
【发布时间】:2014-09-15 04:11:05
【问题描述】:
private void btnUpdate_Click(object sender, EventArgs e)
{
    OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\ALNETTE\Desktop\New folder\AccessDatabase.accdb");

    string Db = "Select * from StudentInfo";
    OleDbCommand cmd = new OleDbCommand(Db, con);

    try
    {
        con.Open();
        cmd.ExecuteNonQuery();
        MessageBox.Show("Update");
        con.Close();
    }
    catch (Exception)
    {
        MessageBox.Show("error");
    }
}

我有这个更新代码,但是当我更新它时,它只更新 datagridview 而不是我的数据库。我应该怎么做才能在数据库中更新它?

【问题讨论】:

    标签: c# database ms-access oledb


    【解决方案1】:

    您需要使用更新查询(“UPDATE TABLENAME SET COLUMN2=Values1 WHERE COLUMN1=Values”),而不是使用 Select * from StudentInfo

    例如:

       private void btnUpdate_Click(object sender, EventArgs e)
        {
            OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data   Source=C:\Users\ALNETTE\Desktop\New folder\AccessDatabase.accdb");
            string Db = "UPDATE StudentInfo SET StudentName='SomeoneName' WHERE StudentID=1";
            OleDbCommand cmd = new OleDbCommand(Db, con); 
    
            try
            {
                con.Open();
                cmd.ExecuteNonQuery();
                MessageBox.Show("Update");
                con.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("error"+ex.Message);
            }
        }
    

    【讨论】:

    • 我把语句中的代码改成,string Db = "UPDATE StudentInfo SET Surname='@Surname'WHERE STUDENT_ID=2015-001-0001";还是我编辑的时候出错了?
    【解决方案2】:

    您有一个SELECT sql 语句,您将需要一个INSERTUPDATE 语句来向数据库添加或更新数据。

    例如:

    INSERT INTO StudentInfo VALUES ('John Doe', '555-1212');
    

    UPDATE StudentInfo SET 
    Name = 'Joe Bloggs', PhoneNumber = '555,1234'
    WHERE ID = 1
    

    【讨论】:

    • 如何在 datagridview 上输入值?当我按下更新时,它会自动输入该代码的值我
    • @AllanPatrickCaldito 需要在发布问题之前进行研究,并且不要两次发布相同的问题!我能够谷歌 ms access datagridview update 并找到 197,000 个结果。例如:stackoverflow.com/questions/9770561/…tech.pro/tutorial/664/… - 迟早你需要自己学习编程。 Stack Overflow 随时为您提供帮助,但我们不是您的研究助理。
    • 我的浏览器中有很多标签,这就是你所说的不重新搜索? :(
    【解决方案3】:

    改用更新查询。您选择的是更新。

    更新语法为:

    Update tablname 
    set col1 = values, col2 = values... 
    WHERE some_column = some_value;
    

    【讨论】:

      【解决方案4】:
      try
                  {
                      cBuild = new OleDbCommandBuilder(adapter);
                      adapter.Update(dt);
                  }
                  catch (Exception)
                  {
                      MessageBox.Show("DO NOT DUPLICATE STUDENTID");
                  }
      

      【讨论】:

        猜你喜欢
        • 2020-07-20
        • 2014-11-05
        • 1970-01-01
        • 1970-01-01
        • 2016-03-23
        • 2017-08-26
        • 2012-04-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多