如何使用多个选择语句填充结构
本文关键字:语句 填充 结构 选择 何使用 | 更新日期: 2023-09-27 18:32:25
目标:使用 C# 和 SqlServer2005 使用多个选择语句填充结构
问题:目前我可以使用一个 select 语句填充结构,但由于此特定 select 语句的性质,要生成正确的结果,需要分解查询,因此我必须使用多个选择来填充一个结构。这是可能的还是我以错误的方式去做。以下是我正在使用的代码
public static bool GetColumns()
{
String sql = "";
try
{
conn.Open();
sql = @"SELECT
database.dbo.table1.column1
FROM
database.dbo.table1;
SELECT
database.dbo.table2.column2
FROM
database.dbo.table2;
SELECT
database.dbo.table3.column3
FROM
database.dbo.table3 ;" ;
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader dr = cmd.ExecuteReader();
MyStructure struct1 = new MyStructure();
while (dr.Read())
{
struct1.column1 = dr.GetValue(0);
struct1.column2 = dr.GetValue(1);
struct1.column3 = dr.GetValue(2);
MyArrayList.Add(struct1);
}
dr.Close();
conn.Close();
return true;
}
catch (Exception ex)
{
if (conn.State == ConnectionState.Open)
conn.Close();
error.LogError(ex, "", "")
return false
}
上面的代码不起作用,因为我列出的值超出了每个单独选择语句的界限。正确的方法是什么?
您的语句将返回多个结果集,如果您使用的是 DataReader,那么您将获得多个结果。使用DataReader.NextResult
方法获取下一个结果集并相应地显示数据。
如果您不关心DataReader
则可以使用 DataSet
并使用DataAdapater
在 DataSet 中的多个DataTables
中填写结果。