我的陈述:
string sqlCommandText = "SELECT * FROM ForumThread WHERE";
如何从中阅读*
?
我正在尝试这样但它不起作用:
if (reader["*"] != DBNull.Value)
{
result.TextContent = Convert.ToString(reader["*"]);
}
答案 0 :(得分:4)
*
不是一个列,它是SELECT
只需抓取它可以找到的每一列的指令。
列将单独显示,因此您需要逐个遍历列并抓取其内容。
要获取列内容,您可以执行以下操作:
StringBuilder sb = new StringBuilder();
for (int index = 0; index < reader.FieldCount; index++)
{
object value = reader[index];
if (value != DBNull.Value)
sb.Append(value.ToString());
}
result.TextContent = sb.ToString();
然而,这将导致所有东西被混合在一起。
例如,如果您的结果集如下所示:
A B C D
10 20 30 Some name here
然后您的结果字符串将如下所示:
102030这里的名字
这是你想要的吗?
也许你告诉我们你想要完成什么,我们能想出更好的答案吗?
答案 1 :(得分:1)
此外,您可以使用此方法检索关联的字段名称:
reader.GetName( /* index of the column */);
答案 2 :(得分:0)
假设您的 ForumThread 表包含 ThreadResponse 列,并且您实际上想要阅读 ThreadResponse 列,则可以使用下一个代码:
//calculates the column ordinal based on column name
int ThreadResponseColumnIdx = reader.GetOrdinal("ThreadResponse");
//If there is a line in the result
if (reader.Read())
{
//read from the current line the ThreadResponse column
result.TextContent = reader.GetString(ThreadResponseColumnIdx);
}