Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DataGridView默认错误对话框_C#_Sql Server_Datagridview - Fatal编程技术网

C# DataGridView默认错误对话框

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

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记录数,重复出现错误

方法:

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填充了数据集?