1

テーブル名があります

フライト情報 (flight_id、flight_no、depart_from、destination、depart_time、arrival_time)

今、私は取得したいだけです

列のdeparte_fromとdestinationに基づくflight_id

次のようにSQLを書きました。

string str = "SELECT fligth_id FROM flight_info WHERE  depart_from = @depart AND destination = @destination"

@depart実行中に、とを指すエラーが表示されます@destination。これらのスカラー変数を指定するにはどうすればよいですか?

私はそれを試してみました..

SqlDataReader myReader;
string depart = myReader["depart_from"].ToString();
string destination = myReader["destination"].ToString();

しかし、それは機能していません。助けが必要です。

4

1 に答える 1

1

クエリでパラメータを使用していますが、指定していません。

このようにしてみてください。

using (SqlConnection connection = new SqlConnection(connectionString))
{
   connection.Open();
   using (SqlCommand command = new SqlCommand("SELECT fligth_id FROM flight_info WHERE  depart_from = @depart AND destination = @destination", connection))
   {
        command.Parameters.Add("@depart", depart);
        command.Parameters.Add("@destination", destination);
        SqlDataReader myReader = command.ExecuteReader();
        while (myReader.Read())
        {
           int fligth_id = reader.GetInt32(0);
        }
   }
}

クエリは列のみを返すため、その方法で列にfligth_idアクセスすることはできません。データベースの行を 1 つずつ読み取ります。depart_fromdestinationSqlDataReader

次のようなクエリで他の列を返す場合。

SELECT fligth_id, depart_from, destination

次のように同じように読むことができます。

while (myReader.Read())
{
    int fligth_id = reader.GetInt32(0);
    string depart_from = reader.GetString(1);
    string destination = reader.GetString(2);
}
于 2013-04-24T06:05:36.510 に答える