Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.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#_Ms Access - Fatal编程技术网

C# 为什么我的查询无法获取所有数据?C访问

C# 为什么我的查询无法获取所有数据?C访问,c#,ms-access,C#,Ms Access,经过一个小时的调试,我试图找出为什么我的查询只返回1个ID,而其中至少有3个: public static string[] selectAGIdOfKC(string id) { int nbAg = 0; DataTable results = new DataTable(); using (OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.

经过一个小时的调试,我试图找出为什么我的查询只返回1个ID,而其中至少有3个:

    public static string[] selectAGIdOfKC(string id)
    {

        int nbAg = 0;
        DataTable results = new DataTable();
        using (OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=bdd.mdb;
                                                                        Persist Security Info=False;"))
        {
            OleDbCommand cmd = new OleDbCommand("SELECT Id FROM ActionG WHERE Num_Kc = @Id", conn);
            conn.Open();

            cmd.Parameters.AddWithValue("@Id", id);
            OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
            conn.Close();
            adapter.Fill(results);
            nbAg=results.Rows[0].ItemArray.Count();

        }

            string[] myTab = new string[nbAg];
            for (int i = 0; i < nbAg; i++)
            {
                myTab[i] = results.Rows[0].ItemArray[i].ToString();
            }
            return myTab;
    }
我试图使用一些变通方法,但没有任何方法解决丢失返回ID的问题


有人能帮我吗?谢谢你的时间

这完全取决于您想要结果的方式,但是假设您想要nbAg包含返回的行数,并且假设您想要myTab包含返回的id值,那么您的代码并不是为了完成您想要的任务而编写的

请注意省略号…-我只修改了导致您当前症状的代码

public static string[] selectAGIdOfKC(string id)
{
    int nbAg = 0;
    ...

    nbAg = results.Rows.Count();
    string[] myTab = new string[nbAg];
    for (int i = 0; i < nbAg; i++)
    {
        myTab[i] = results.Rows[i][0].ToString(); 
                   // This is the first column of row i
    }
    return myTab;
}

您需要调试代码。您只保留列的计数,而不保留行。请提供一些数据?语法修复,删除冗余语句。无论返回多少行,您只查看第一行。根据定义,行[0]是第一行。尝试我在回答中提供的修复。