Tag: datagridview

无法编辑填充LINQ查询结果的DataGridView

当我使用linq-to-xml查询的结果来填充datagridview时,我无法编辑datagridview。 我已经尝试将datagridview的readonly属性设置为false,这没有用。 我还为cellBeginEdit添加了一个事件处理程序,并在那里放置一个断点,但它没有被击中。 知道我做错了什么,或者这是不可能的? public class MergeEntry { public string author { get; set; } public string message { get; set; } } … var query = from entry in xmlDoc.Descendants(“entry”) select new MergeEntry { author = entry.Element(“author”).Value, message = entry.Element(“msg”).Value, } var queryAsList = query.ToList(); myBindingSource.DataSource = queryAsList; myDataGridView.DataSource = myBindingSource;

如何让DataGridView立即提交编辑?

我有一个主 – 细节布局,其中包含一段弹出菜单(详细信息)和一个包含DataGridView的部分,用于保存行。 当DataGridView中的选定行发生更改时,弹出菜单状态会更新,并且当弹出菜单更改时,DGV所选行中的状态应更新。 当我更改弹出菜单的值时, 除了 DataGridView中的行之外 ,所有这些都有效。 我必须选择一个不同的行才能看到我的编辑内容。 我假设这是因为在选择更改之前尚未提交编辑。 我的问题是:如何让弹出窗口的更改立即反映在DataGridView中? 我已尝试在弹出菜单的SelectionChangeCommitted处理程序中调用EndEdit(),但这没有任何效果。 我对一种技术很感兴趣,这种技术可以让我创建一个DataGridView,就像没有Undo机制一样。 理想情况下,解决方案是通用的,可移植到其他项目。

将绑定的combobox添加到datagridview

该场景与http://arsalantamiz.blogspot.com/2008/09/binding-datagridview-combobox-column.html几乎相同。 但我不能让它在c#上工作…… 我有两个表的mySql数据库:1。协议2. pcapdata 在协议表中,我有两个字段:idprotocols和protocolName 在pcaps表中我有wizardProtocol(它与idprotocols字段“链接”) 我想要得到的是一个包含名称的combobox,它将取代向导协议字段。 接下来,如果用户更新“名称”combobox,则wizardProtocol将相应地更改(因此我将能够相应地更新数据库中的更改)。 现在,在网上阅读了一些信息后:我写了以下代码: public void Bind(ref DataGridView dataGridView) { try { mySqlDataAdapter = new MySqlDataAdapter(SELECT_ALL_PCAP, _con); mySqlCommandBuilder = new MySqlCommandBuilder(mySqlDataAdapter); mySqlDataAdapter.UpdateCommand = mySqlCommandBuilder.GetUpdateCommand(); mySqlDataAdapter.DeleteCommand = mySqlCommandBuilder.GetDeleteCommand(); mySqlDataAdapter.InsertCommand = mySqlCommandBuilder.GetInsertCommand(); dataSet = new DataSet(); mySqlDataAdapter.Fill(dataSet, “pcap”); MySqlDataAdapter adp2 = new MySqlDataAdapter(SELECT_ALL_PROTOCOL, _con); MySqlCommandBuilder builder = new MySqlCommandBuilder(adp2); adp2.UpdateCommand = builder.GetUpdateCommand(); […]

选择新添加的Row – DataGridView和BindingSource

我正在向绑定到DataGridView的BindingSource添加一个新的Row source.AddNew(); 在此之后,使用BindingSource获取新添加的行,当它排序时返回DataGridView中的下一行。 ROW “A” ROW “B” <- myBindingSource.AddNew(); ROW "C" myBindingSource.Current给出ROW“C”。 (它成为DataGridView中的选定行) 我需要这个,因为我想只更新新添加的行 DataRowView drv = (DataRowView)myBindingSource.Current; myTableAdapter.Update(drv.Row); 而不是整个表。 myTableAdapter.Update(myDataSet.myTable); 而且,我想在插入后在DataGridView中选择这个新添加的行。 有可能吗?

如何处理ComboBox的SelectedIndexChanged事件?

我有DataGridView ,它包含两个ComboBox列。 第二个ComboBox将根据第一个ComboBox的选定值填充数据。 如何处理第一个ComboBox的SelectedIndexChanged事件。

在C#中将DataGridView的内容转换为List

获取DataGridView的内容并将这些值放入C#列表的最佳方法是什么?

DataGridView Winform中的文本框自动完成

我已经将DataGridView绑定正确地绑定到我的数据表但是我正在尝试使自动完成function正常工作到其中一个文本框列。 自动完成工作正在运行,但我试图将其限制为datagridview上的只有一列。 目前它要么为每一列做,要么根本没有。 有任何想法吗? 代码如下。 private void dataGridDetail_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { if (dataGridDetail.CurrentCell.ColumnIndex == 2) { var source = new AutoCompleteStringCollection(); String[] stringArray = Array.ConvertAll(products.Select(), delegate(DataRow row) { return (String)row[“code”]; }); source.AddRange(stringArray); TextBox prodCode = e.Control as TextBox; if (prodCode != null) { prodCode.AutoCompleteMode = AutoCompleteMode.SuggestAppend; prodCode.AutoCompleteCustomSource = source; prodCode.AutoCompleteSource = AutoCompleteSource.CustomSource; } } […]

DataGridView – 如何仅为单个列设置货币格式

我正在尝试将datagridview用于购物篮。 我有它显示客户的篮子,但我希望它显示价格列的货币,但我也有一个数量列,所以如果我把默认样式作为货币,那么它将更改两列货币格式。 我想要做的是将货币格式添加到价格列,但不添加到数量列。 这是显示购物篮的代码(Form_load) using (var con = new SqlConnection(connectionString)) { SqlDataAdapter dataadapter = new SqlDataAdapter( “select p.productname ‘Product Name’, b.productquantity ‘Quantity’, c.categoryname ‘Category’, p.price ‘Current Price’ ” + “from basket b join products p on b.productid = p.productid ” + “join Categories c on c.categoryid = p.categoryid ” + $”where b.customerid = {CustomerId}”, con); […]

在单元格编辑后阻止windows窗体datagridview更改行

我在Windows窗体中有一个datagridview,编辑值时的默认行为是在单元格编辑后,当我按回车键时,所选行将更改为下一行。 我不希望这样,我想退出编辑模式,但保持在同一个单元格中。 可能吗?

datagridview单元格在Windows窗体中编辑和保存function?

我在c#windows窗体应用程序中处理datagridview,我正在从数据库加载数据,现在我希望用户能够编辑单元格值并将值保存到数据库,如何编辑单元格值和如何将值保存到数据库? SqlConnection con = new SqlConnection(“user id=sa;password=123;database=employee”); SqlDataAdapter da = new SqlDataAdapter(“select * from UserReg”, con); DataSet ds = new DataSet(); da.Fill(ds, “p”); dataGridView1.DataSource = ds.Tables[“p”];