C# 为什么我的查询无法获取所有数据?C访问
经过一个小时的调试,我试图找出为什么我的查询只返回1个ID,而其中至少有3个: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.
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]是第一行。尝试我在回答中提供的修复。