服务类
public string[] loadSecretQues(string email)
{
string[] ques= new string[3];
dbConn = new OdbcConnection(dbConnString);
dbConn.Open();
cmd = new OdbcCommand();
cmd.Connection = dbConn;
cmd = new OdbcCommand("SELECT q1, q2, q3 FROM Information WHERE EmailAdd = '" + email + "'", dbConn);
dRead = cmd.ExecuteReader();
while (dRead.Read())
{
if (dRead.HasRows)
{
for (int i = 1; i <= 3; i++)
{
for (int j = 0; j <= 3; j++)
{
ques[j] = dRead["q" + i].ToString();
}
return ques[i];
}
}
}
}
Page.aspx
protected void btnCheck_Click(object sender, EventArgs e)
{
cmbQues.Items.Add(srvc.loadSecretQues(txtEmail.Text));
}
大家好。我正在寻求帮助。我想从类中的函数返回数组值。过程是,我想从我的数据库中检索3个问题(字符串数据类型)并将其存储在组合框中。有任何建议如何检索这三个问题?还有其他方法吗?提前致谢! :)
答案 0 :(得分:0)
您正在从内部loop
返回,以便取消其余的迭代,并且您也错过了Dispose命令以及关闭打开的连接。所以我建议你在返回之前处理命令以及连接,因此代码将如下所示:
无需检查
dvc_mst_tdeposit
,因为它没有行控制 从而出来。因为,不需要外部for Loop
(i循环) (j循环足以处理这种情况。
dRead = cmd.ExecuteReader();
while (dRead.Read())
{
for (int j = 0; j < 3; j++)
{
ques[j] = dRead["q" + i].ToString();
}
}
dRead.Close();
cmd.Dispose();
dbConn.Close();
return ques;
答案 1 :(得分:0)
使用List而不是string array.check link以获得优势
public List<string> loadSecretQues(string email)
{
List<string> ques=new List<string>();
dbConn = new OdbcConnection(dbConnString);
dbConn.Open();
cmd = new OdbcCommand();
cmd.Connection = dbConn;
cmd = new OdbcCommand("SELECT q1, q2, q3 FROM Information WHERE EmailAdd = '" + email + "'", dbConn);
dRead = cmd.ExecuteReader();
if (dRead.HasRows)
{
while (dRead.Read())
{
ques.Add(dRead["yourColumnName"].ToString());
}
}
return ques;
}