C# DataGridView默认错误对话框
GetData下面的方法给了我以下错误: DataGridView默认错误对话框 DataGridView中发生以下异常: System.ArgumentException:列“anNo”不属于表_utJM_WOExCycleItem。 在System.Data.DataRow.CheckColumnDataColumn处 位于System.Data.DataColumnPropertyDescriptor.GetValueObject组件 位于System.Windows.Forms.DataGridView.DataGridViewDataConnection.GetValueInt32 boundColumnIndex、Int32 columnIndex、Int32 rowIndex 要替换此默认对话框,请处理DataError事件 我能找出问题所在。 当表_utJM_WOExCycle没有状态为“O”或“N”的记录时,我会出现此错误。当一条记录获得ACO或N状态,并且程序调用GetData方法时,我得到以下错误: 对于_utJM_WOExCycleItem中的字段anNo、acWoex、acIdent、acName x记录数,重复出现错误 方法:C# DataGridView默认错误对话框,c#,sql-server,datagridview,C#,Sql Server,Datagridview,GetData下面的方法给了我以下错误: DataGridView默认错误对话框 DataGridView中发生以下异常: System.ArgumentException:列“anNo”不属于表_utJM_WOExCycleItem。 在System.Data.DataRow.CheckColumnDataColumn处 位于System.Data.DataColumnPropertyDescriptor.GetValueObject组件 位于System.Windows.Forms.Data
private void GetData(DataGridView dgwm, DataGridView dgwd, BindingSource bsm, BindingSource bsd, String resurs)
{
dgwm.DataSource = bsm;
dgwd.DataSource = bsd;
DataSet ds = new DataSet();
String SQL = "";
SQL = " SELECT anCycle, acResurs, anYear, case when dbo._ufnJM_CycleCompare(anCycle, acResurs, anYear, 'P') <> dbo._ufnJM_CycleCompare(anCycle, acResurs, anYear, 'T') then 'Sprememba' else '' end acChange, acNote " +
" FROM _utJM_WOExCycle " +
" WHERE acResurs = '" + resurs + "' " +
" AND acStatus in ('O','N') " +
" ORDER BY anCycle asc ";
SqlDataAdapter sqlDataAdapterMaster = new SqlDataAdapter(SQL, cn);
sqlDataAdapterMaster.Fill(ds, "_utJM_WOExCycle");
SQL = " SELECT anCycle, anNo, acWoex, acIdent, acName" +
" FROM _utJM_WOExCycleItem " +
" WHERE acResurs = '" + resurs + "' " +
" and anCycle in (select anCycle from RotoP.._utJM_WOExCycle where acStatus in ('O','N') and acResurs = '" + resurs + "') " +
" ORDER BY anCycle asc, anNo asc ";
SqlDataAdapter sqlDataAdapterDetail = new SqlDataAdapter(SQL, cn);
sqlDataAdapterDetail.Fill(ds, "_utJM_WOExCycleItem");
DataRelation relation = new DataRelation("Povezava1",
ds.Tables["_utJM_WOExCycle"].Columns["anCycle"],
ds.Tables["_utJM_WOExCycleItem"].Columns["anCycle"]);
ds.Relations.Add(relation);
bsm.DataSource = ds;
bsm.DataMember = "_utJM_WOExCycle";
bsd.DataSource = bsm;
bsd.DataMember = "Povezava1";
dgwm.ReadOnly = true;
dgwd.ReadOnly = true;
dgwm.AutoResizeColumns();
dgwd.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells;
dgwm.Columns["anYear"].Visible = false;
dgwm.Columns["acResurs"].Visible = false;
dgwm.Columns["acChange"].DefaultCellStyle.ForeColor = Color.Green;
dgwm.Columns["acNote"].DefaultCellStyle.ForeColor = Color.Red;
dgwm.Columns["acNote"].HeaderText = "Opomba";
dgwm.Columns["anCycle"].HeaderText = "Cikel";
dgwm.Columns["acChange"].HeaderText = "";
dgwd.Columns["anCycle"].Visible = false;
dgwd.Columns["anNo"].HeaderText = "Pozicija";
dgwd.Columns["acWoex"].HeaderText = "Delovni nalog";
dgwd.Columns["acIdent"].HeaderText = "Šifra izdelka";
dgwd.Columns["acName"].HeaderText = "Naziv izdelka";
dgwm.SetColumnSortMode(DataGridViewColumnSortMode.NotSortable);
dgwd.SetColumnSortMode(DataGridViewColumnSortMode.NotSortable);
}
如果我们查看您的第一个查询,您没有任何名为anNo的列 然后将此结果集与DataGridView控件绑定,可能DataGridView控件有一个映射为anNo列的列,该列在数据源中找不到
选择在设计模式下与_utJM_WOExCycle绑定的DataGridView控件,并检查已定义的列,DataPropertyName设置为anNo的列,该专栏是一个实际的问题。我在中断了整个EntityFramework连接并再次执行该过程后,出现了一个非常模糊的错误 我发现我的问题在于SQL server如何存储我的映像..不要使用类型image它已被弃用它有一个byte[]类型并另存为0x433 将图像存储类型更改为varbinaryMax,它将另存为0xFFD。。。解决了这个问题 概述: 检查实体框架连接 将图像类型另存为VarbinaryMax
1.不要连接sql查询。使用参数。2.您是否已经仔细阅读了代码,并确认您的DataAdapter确实用datatables填充了数据集?