我正在尝试从数据库表中接收数据,我的sql查询也从另一个表中选择了一个我想要返回的列
while (dr.Read())
{
Inlagg comentsar = new Inlagg
{
names = (int)dr["name"],
dates = (DateTime)dr["Date"]
//get column value from the other table not the Inlagg table here pobbisble?
};
//This gets the column value from the other table but i dont know how to return it
string test = (string)dr["test"];
comen.Add(comentsar);
}
return comen;
如何返回包含来自不同表的列的列的结果?旁注:我有一个我不需要在这里收到的列,尽管列是一个int而我正在尝试接收一个字符串,有没有办法将列强制转换为字符串?任何帮助或输入高度赞赏,谢谢!
编辑:“解决”它只需创建一个包含我想要的值的新类,其中包含来自不同表的列值
答案 0 :(得分:1)
在您的读者内部,您遗漏了以下内容:
if(reader["Column"] != DBNull.Value)
model.Name = reader["Column"].ToString();
您对SQL的查询应正确连接多个表,然后在返回的结果集中,您将返回一个列名。您调用reader["..."]
来访问所述列的值。
正如您注意到model
类调用属性的名称。
模型很重要,因为它代表您的数据,但要通过阅读器访问,您只需添加另一个属性。
这是因为该列为null
,因此您无法强制转换 ToString()
,这就是错误发生的原因。您也可以尝试:
int? example = reader["Column"] as int?;
答案 1 :(得分:0)
扩展你的课程:
public class Inlagg{
...
addMyString(String myString){
this.myString = myString;
}
getMyString(){
return this.myString;
}
}