当前位置: 首页 > 面试题库 >

如何使用Datagridview绑定源C#更新SQL Server数据库

夏侯野
2023-03-14
问题内容

我正在用C#编写Winforms应用程序,该应用程序使用户可以使用datagridview编辑和更新数据库。

问题是,我无法使其正常工作。我唯一要实现的就是更新datagridview所显示的内容,但是当我进入数据库表时,数据没有任何变化。我搜索了很多讨论该问题的站点,但对我来说仍然没有任何用处。

到目前为止我尝试过的事情:

  • 将数据库绑定到datagridview
  • Copy to Output Directory属性更改为Copy if newer
  • 使用dataAdapter.Update((DataTable)bindingSource1.DataSource)带有或不带有任何更新查询的execute。
  • 不执行更新查询dataAdapter.update(...)

这是我的代码:

public Form1()
{
    InitializeComponent();
    GetData("SELECT * FROM Table1");
}

void GetData(string selectCommand)
{
    SqlConnection conn = new SqlConnection(Properties.Settings.Default.NewDBTESTConnectionString);

    dataAdapter = new SqlDataAdapter(selectCommand, conn);
    commandBuilder = new SqlCommandBuilder(dataAdapter);

    table = new DataTable();
    dataAdapter.Fill(table);

    bindingSource1.DataSource = table;
    dataGridView1.DataSource = bindingSource1;
}

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
        dataAdapter.Update((DataTable)bindingSource1.DataSource);    
}

问题答案:

如果不调用bindingSource1.EndEdit基础数据表,则不会看到任何更改,因此Update命令没有任何要更新的内容。

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
    bindingSource1.EndEdit();
    DataTable dt = (DataTable)bindingSource1.DataSource;

    // Just for test.... Try this with or without the EndEdit....
    DataTable changedTable = dt.GetChanges();
    Console.WriteLine(changedTable.Rows.Count);

    int rowsUpdated = da.Update(dt);    
    Console.WriteLine(rowsUpdated);
}


 类似资料:
  • 本文向大家介绍C# DataGridView绑定数据源的方法,包括了C# DataGridView绑定数据源的方法的使用技巧和注意事项,需要的朋友参考一下 开始以前,先认识一下WinForm控件数据绑定的两种形式,简单数据绑定和复杂数据绑定。 1. 简单的数据绑定 例1 简单的数据绑定是将用户控件的某一个属性绑定至某一个类型实例上的某一属性。 采用如下形式进行绑定:引用控件.DataBinding

  • 问题内容: 我需要将 DataTable 绑定到 DataGridView 。我这样做: 但我得到的是 数据表中 增加了新的 列到我 的DataGridView 。我不需要这个,我只需要在现有列下编写即可。 拜托,帮帮我,伙计们! 问题答案: 尝试这个: 如果您不想清除所有现有的列,则必须为每个现有的列进行设置,如下所示:

  • 我正在使用带有wpf和Entity框架的mvvm模式,并在视图模型和模型中实现了INotifyProperty tyChanged 我使用带有3个文本框控件的多绑定,第一个文本框用于输入名字,第二个文本框用于姓氏 第三个文本框表示全名 使用多重绑定的第三个文本框: 这是我的转换器 这可以完美地工作并将FirstName和LastName保存到数据库,但不会将FullName保存到具有多绑定的数据库

  • 在将自定义war部署到WebSphere Liberty概要文件时,我得到了以下异常: 未找到类组织.hsqldb.jdbc驱动程序 我通过以下方式创建和配置了数据库: http://pic.dhe.ibm.com/infocenter/wrklight/v6r0m0/index.jsp?topic=/com.ibm.worklight.help.doc/admin/t_configuring_l

  • 本文向大家介绍C# Datagridview绑定List方法代码,包括了C# Datagridview绑定List方法代码的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了c# DatagridView绑定List的方法,分享给大家供大家参考。具体方法如下: 主要代码如下:  希望本文所述对大家的C#程序设计有所帮助。

  • 我试图遵循官方google文档https://developer.android.com/tools/data-binding/guide.html中的数据绑定示例 只是我试图将数据投标应用于一个片段,而不是一个活动。 我当前在编译时遇到的错误是 我怀疑不知道它应该绑定到哪个布局文件-因此出现错误。有什么建议吗?