您好我正在尝试使用OleDb来连接数据库,但是当我想从那里读取数据并在那之后使用Read()命令
cmd.Parameters.Add("@name", TextBox1.Text);
cmd.Parameters.Add("@password", TextBox2.Text);
cmd.ExecuteNonQuery();
System.Data.OleDb.OleDbDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
string istifadeciAd = (string)rdr.GetString(1);
string istifadeciParol = (string)rdr.GetString(2);
}
在String istifadeciAd和istifadeciParol中因为IndexoutofRange而得到了GetString的错误。但是我们不需要使用列索引调用GetString吗?
答案 0 :(得分:3)
您需要在select语句中包含2个以上的选择列才能获得rdr.GetString(2)
如下所示
select id, istifadeciAd, istifadeciParol from Table1 where name =? and password =?
请注意,索引是从零开始的
因此,如果您只选择istifadeciAd, istifadeciParol
列,则需要将其读作
string istifadeciAd = rdr.GetString(0);
string istifadeciParol = rdr.GetString(1);
而且您不需要将结果转换为string
,因为它正在返回string
我认为您还需要更改添加代码的参数,
cmd.Parameters.AddWithValue("@name", TextBox1.Text);
cmd.Parameters.AddWithValue("@password", TextBox2.Text);