【发布时间】:2015-04-22 15:54:01
【问题描述】:
我有以下几点:
using (SqlCommand cmd2 = new SqlCommand("", dbCon))
{
cmd2.CommandText = @"
SELECT [PCMF04_PCBPocketName_N]
,[PCMF01_PcbConnectorName_N]
,[PCMF03_PCBHeaderName_N]
,[PCMF04_KeyIndex_C]
,[PCMF04_SortOrder_R]
FROM [ArdSqlDev].[dbo].[WPCMF04_PCBPocket]
WHERE
PCMF03_PCBHeaderName_N = @PCMF03_PCBHeaderName_N
Order By
PCMF04_PCBPocketName_N";
cmd2.Parameters.Add("@PCMF03_PCBHeaderName_N", SqlDbType.NVarChar).Value = header.HeaderName;
using (SqlDataReader dr = cmd2.ExecuteReader())
{
while (dr.Read())
{
var pocket = new PcbPocket(dr.GetString(0));
pocket.PocketName = dr.GetString(0);
pocket.PcbConnector.ConnectorName = dr.GetString(1);
pocket.KeyIndex = dr.GetString(3);
pocket.SortOrder = dr.GetInt32(4);
header._PcbHeaderPockets.Add(pocket);
}
return header;
}
}
我在网上遇到错误:
pocket.PcbConnector.ConnectorName = dr.GetString(1);
错误:
无法将错误 2 属性或索引器“PcbConnector.ConnectorName”分配给 -- 它是只读的
袖珍课
public partial class PcbPocket : IEquatable<PcbPocket>, IComparable<PcbPocket>, IComparable
{
public PcbPocket(string PocketName)
{
_PocketName = PocketName;
}
private string _PocketName = string.Empty;
public string PocketName
{
get { return _PocketName; }
set { _PocketName = value; }
}
private string _KeyIndex = string.Empty;
public string KeyIndex
{
get { return _KeyIndex; }
set { _KeyIndex = value; }
}
private int _SortOrder = 0;
public int SortOrder
{
get { return _SortOrder; }
set { _SortOrder = value; }
}
private PcbConnector _PcbConnector = null;
public PcbConnector PcbConnector
{
get { return _PcbConnector; }
set { _PcbConnector = value; }
}
连接器类
公共部分类 PcbConnector : IEquatable, IComparable, IComparable {
private Collections.PcbConnectorPinList _PcbConnectorPins = new Collections.PcbConnectorPinList();
public Collections.PcbConnectorPinList PcbConnectorPins
{
get
{
return _PcbConnectorPins;
}
set
{
_PcbConnectorPins = value;
}
}
public PcbConnector(string connectorName)
{
_ConnectorName = connectorName;
}
public PcbConnector(PcbConnector pcbConnector)
{
_ConnectorName = pcbConnector.ConnectorName;
_Height = pcbConnector.Height;
_Width = pcbConnector.Width;
_Active = pcbConnector.Active;
_Supplier = pcbConnector.Supplier;
}
private string _ConnectorName = string.Empty;
public string ConnectorName
{
get { return _ConnectorName; }
}
private string _Supplier = string.Empty;
public string Supplier
{
get { return _Supplier; }
set { _Supplier = value; }
}
private float _Height = 0;
public float Height
{
get { return _Height; }
set { _Height = value; }
}
private float _Width = 0;
public float Width
{
get { return _Width; }
set { _Width = value; }
}
private bool _Active = true;
public bool Active
{
get { return _Active; }
set { _Active = value; }
}
PcbPocket 和 PbcConnector 是类。 ConnectorName 是 PbcConnector 类的属性。如果我忽略这一行,该值将为空,这不是保存在数据库中的内容,并且会给我一个对象引用未设置错误。有没有办法可以检索我的 ConnectorName 值以显示在我的 datagridview 中(在不同的文件/表单中)?
【问题讨论】:
-
这将有助于显示
PcbPocket类以及PcbPocket.PcbConnector是哪个类。 -
PcbPocket.PcbConnector.ConnectorName是ReadOnly或get-only属性:即没有附加set。PcbPocket或PcbPocket.PcbConnector可能有一个构造函数可以满足您的需求。或者可能是PcbPocket.PcbConnector.SetConnectorName等。 -
你也像你说的那样创建一个新的 PcbConnector 实例,它是一个类
-
@Jonesy 编辑了我的问题以添加我的课程。
-
我不想这么说,但问题很明显。您是否先尝试在 Google 上搜索错误消息?
标签: c# sql datagridview