0

次のコードを試しましたが、「1 つ以上の必須パラメーターに値が指定されていません」という例外がスローされます。

protected void Button2_Click(object sender, EventArgs e)
{
      string constr = @"Provider=Microsoft.Jet.OLEDB.4.0; Data      
      Source=C:\Users\yogi\Documents\mydb.mdb";
      string cmdstr1 = "select count(*) from quant_level1";
      OleDbConnection con1 = new OleDbConnection(constr);
      OleDbCommand com1 = new OleDbCommand(cmdstr1, con1);
      con1.Open();
      int count = (int) com1.ExecuteScalar();
      int i = 2;
      while (i <= count)
      {
           string cmdstr = "select * from quant_level1 where id = i";
           OleDbConnection con = new OleDbConnection(constr);
           OleDbCommand com = new OleDbCommand(cmdstr, con);
           con.Open();
           OleDbDataReader reader = com.ExecuteReader();
           reader.Read();
           label1.Text = String.Format("{0}", reader[1]);
           RadioButton1.Text = String.Format("{0}", reader[2]);
           RadioButton2.Text = String.Format("{0}", reader[3]);
           RadioButton3.Text = String.Format("{0}", reader[4]);
           RadioButton4.Text = String.Format("{0}", reader[5]);
           con.Close();
           i++;
      }
      con1.Close();
}
4

3 に答える 3

0

select ステートメント内に 1 つの誤りがあります。提供していない ID を選択しようとしています。

 string cmdstr = "select * from quant_level1 where id = i";

select ステートメントは次のようになります。

string cmdstr = "select * from quant_level1 where id = " + i;

あなたのループカウンターはあなたの文字列の中にあります/ありました。自動で置換されることはありません。

于 2013-10-18T06:37:47.143 に答える
0

ボタンをクリックするたびに次の行を取得したいので。

int i=2;
protected void Button2_Click(object sender, EventArgs e)
{
      string constr = @"Provider=Microsoft.Jet.OLEDB.4.0; Data      
      Source=C:\Users\yogi\Documents\mydb.mdb";
      string cmdstr1 = "select * from quant_level1 where id ="+i;
      OleDbConnection con1 = new OleDbConnection(constr);
      OleDbCommand com1 = new OleDbCommand(cmdstr1, con1);
      con1.Open();
      if(reader.Read())
      {
           label1.Text = String.Format("{0}", reader[1]);
           RadioButton1.Text = String.Format("{0}", reader[2]);
           RadioButton2.Text = String.Format("{0}", reader[3]);
           RadioButton3.Text = String.Format("{0}", reader[4]);
           RadioButton4.Text = String.Format("{0}", reader[5]);
           i++;
      }
      con1.Close();
}
于 2013-10-18T07:04:27.870 に答える