1

有几个要执行的查询返回 DataTable 对象。为了加快开发速度,我创建了一个私有方法,它应该通过将查询字符串作为参数返回数据集。

方法如下:

private DataTable getDataTable(string query)
    {
        DataTable dt = new DataTable();
        SqlDataAdapter DA = new SqlDataAdapter(query, conn);
        try
        {
            iStatusIndicator.SetBusy(true);
            iStatusIndicator.SetStatus("executing query" + query);
            DA.Fill(dt);
        }
        catch (Exception ex)
        {
            ...
        }
        iStatusIndicator.SetBusy(false);
        iStatusIndicator.SetStatus("");
        return dt;
    }

该过程不会引发异常,但 DataTable dt 始终为空。我尝试直接在 sql 命令提示符中运行查询字符串,它按预期返回数据,所以我不知道可能是什么问题。

如果你们中的任何人解释原因,建议修复或通过接收查询字符串返回 DataTables 的更好方法,我将非常感激。

谢谢

4

2 回答 2

0
private static DataSet SelectRows(DataSet dataset,
    string connectionString,string queryString) 
{
    using (SqlConnection connection = 
        new SqlConnection(connectionString))
    {
        SqlDataAdapter adapter = new SqlDataAdapter();
        adapter.SelectCommand = new SqlCommand(
            queryString, connection);
        adapter.Fill(dataset);
        return dataset;
    }
}
于 2010-09-24T22:01:49.883 回答
0

你的 catch 块里有什么?有没有什么东西可以返回或退出子?这似乎是我可以看到该函数将返回 NOthing 的唯一方法(即,您的函数从未到达“return dt;”行

于 2010-09-24T23:10:42.187 回答