尝试从数据库中检索时出错
Error when trying to retrieve from database
我已经从 XSD 模式生成了三个 classes:
public partial class PathDetailsMessage {
private MessageHeader messageHeaderField;
public MessageHeader MessageHeader {
get {
return this.messageHeaderField;
}
set {
this.messageHeaderField = value;
}
}
}
public partial class MessageHeader {
private Recipient recipientField;
public Recipient Recipient {
get {
return this.recipientField;
}
set {
this.recipientField = value;
}
}
}
public partial class Recipient {
private string valueField;
public string Value {
get {
return this.valueField;
}
set {
this.valueField = value;
}
}
}
当我尝试将 id 的值(它是数据库中的一个字符)放入 medusa.MessageHeader.Recipient.Value 时,出现错误(见下文):
if (dr.HasRows)
{
dr.Read();
medusa.MessageHeader.Recipient.Value = Convert.ToString(dr["id"]);
dr.Close();
}
我收到以下错误:
System.NullReferenceException: 'Object reference not set to an instance of an object.'
PathDetailsMessage.MessageHeader.get returned null.
我使用以下 SQL 字符串:
string sqlString = "SELECT id FROM view_otf WHERE id LIKE '%079%'";
id 列在数据库中是 CHAR。
我想不出这个问题的解决方案。
你能帮帮我吗?
谢谢。
LE: 这 3 个 class 在同一个 .cs 文件中。
LE2: medusa 是从 PathDetailsMessage.cs 文件初始化的对象,class 从 XSD schema
PathDetailsMessage medusa = new PathDetailsMessage();
我们缺少 medusa
初始化代码,但您应该这样做:
medusa.MessageHeader = new MessageHeader {
Recipient = new Recipient()
};
medusa.MessageHeader.Recipient.Value = Convert.ToString(dr["id"]);
这是因为像 PathDetailsMessage
这样的 class 的初始化不会为 MessageHeader
属性 设置任何值,后者将为 null。这同样适用于 Recipient
属性。所以通过上面的初始化,你将有一些对象来存储值。
我已经从 XSD 模式生成了三个 classes:
public partial class PathDetailsMessage {
private MessageHeader messageHeaderField;
public MessageHeader MessageHeader {
get {
return this.messageHeaderField;
}
set {
this.messageHeaderField = value;
}
}
}
public partial class MessageHeader {
private Recipient recipientField;
public Recipient Recipient {
get {
return this.recipientField;
}
set {
this.recipientField = value;
}
}
}
public partial class Recipient {
private string valueField;
public string Value {
get {
return this.valueField;
}
set {
this.valueField = value;
}
}
}
当我尝试将 id 的值(它是数据库中的一个字符)放入 medusa.MessageHeader.Recipient.Value 时,出现错误(见下文):
if (dr.HasRows)
{
dr.Read();
medusa.MessageHeader.Recipient.Value = Convert.ToString(dr["id"]);
dr.Close();
}
我收到以下错误:
System.NullReferenceException: 'Object reference not set to an instance of an object.' PathDetailsMessage.MessageHeader.get returned null.
我使用以下 SQL 字符串:
string sqlString = "SELECT id FROM view_otf WHERE id LIKE '%079%'";
id 列在数据库中是 CHAR。
我想不出这个问题的解决方案。
你能帮帮我吗?
谢谢。
LE: 这 3 个 class 在同一个 .cs 文件中。
LE2: medusa 是从 PathDetailsMessage.cs 文件初始化的对象,class 从 XSD schema
PathDetailsMessage medusa = new PathDetailsMessage();
我们缺少 medusa
初始化代码,但您应该这样做:
medusa.MessageHeader = new MessageHeader {
Recipient = new Recipient()
};
medusa.MessageHeader.Recipient.Value = Convert.ToString(dr["id"]);
这是因为像 PathDetailsMessage
这样的 class 的初始化不会为 MessageHeader
属性 设置任何值,后者将为 null。这同样适用于 Recipient
属性。所以通过上面的初始化,你将有一些对象来存储值。