Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C数据集多个结果_C#_Tsql_Datatable_Dataset - Fatal编程技术网

C# C数据集多个结果

C# C数据集多个结果,c#,tsql,datatable,dataset,C#,Tsql,Datatable,Dataset,我有一个存储过程,它返回5或6个结果: SELECT 1 ..... SELECT 2 ..... SELECT 3 ..... SELECT 4 ..... SELECT 5 ..... 现在在C代码中,我在这个结果中输入数据集 static DataSet GetData() { DataSet ds_Data = new ds_Data(); IDBManager dbManager = ConnectDB(); try { db

我有一个存储过程,它返回5或6个结果:

SELECT 1 .....

SELECT 2 .....

SELECT 3 .....

SELECT 4 .....

SELECT 5 .....
现在在C代码中,我在这个结果中输入数据集

static DataSet GetData()
{
    DataSet ds_Data = new ds_Data();
    IDBManager dbManager = ConnectDB();

    try
    {
        dbManager.Open();
        ds_Data = dbManager.ExecuteDataSet(CommandType.StoredProcedure,"sp_GetData");
    }
    catch (Exception ex)
    {
    }
    finally
    {
        dbManager.Close();
        dbManager.Dispose();
    }

    return ds_Data;
}

现在我需要给数据集中的每个数据表命名。当SELECT 2不返回任何行时,我如何处理?当其他SELECT语句不返回任何行时,可能会发生这种情况?我需要选择1将转到Table1Name,选择2将转到Table2Name等等。

据我所知,从存储过程中,您不能这样做

但是,您可以在检索数据集后设置名称,然后从那时起使用它们。
ds.Tables[0].TableName=NameofTable1

我在代码中发现了问题。即使数据集没有行,也会正确返回。问题出在LINQ到DataTable中。我错误地分配了表名。我决定在从数据库下载数据后命名这些表。现在一切都正常了。

为什么没有行很重要?ds_Data.Tables[0]。TableName=T1?如果其中一个表是空的,C代码会返回一个错误,即找不到表[i]或类似的内容。我知道我无法从存储过程中访问它。我的问题是,我需要动态设置表名。我需要知道,如果SELECT 3不返回任何行以不给出该表的Table3名称,您不能编写if-else逻辑来检查该表是否有行。我可能会遗漏一些内容,但从我的发现来看,如果eg SELECT不返回任何行,C将把SELECT 4视为Table3。这就是我的问题。我想当我想使用if-else逻辑时,它会有很多行。