1

私はビジュアルC#でプログラムを作成しており、データをプルしてdataGridViewに配置しています。これはすべて問題なくダンディですが、後でさらにデータ(textBoxに入れたいデータ)をプルしようとすると、エラーが発生します。

これが私がデータをプルしてdataGridViewに入れる部分です:

SqlConnection connect;
DataSet ds1 = new DataSet();
SqlDataAdapter da;

connect = new SqlConnection();
connect.ConnectionString = "Data Source=THEPC-PC\\SQLExpress;Initial Catalog=DataBase;Integrated Security=True";

string sql = "SELECT * FROM table WHERE column = '" + comboBox.Text + "'";
da = new SqlDataAdapter(sql, connect);
da.Fill(ds1, "table");
the_data_dataGridView.AutoGenerateColumns = false;
the_data_dataGridView.DataSource = ds1.Tables["table"];
connect.Open();
connect.Close();

次のコードは、前のクエリの直後に作成しようとしている次のクエリです。そして、「ExecuteScalar」と表示されている3行目にこのエラーが表示されます。

'string'には'ExecuteScalar'の定義が含まれておらず、タイプ'string'の最初の引数を受け入れる拡張メソッド'ExecuteScalar'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)

SqlCommand sql2 = new SqlCommand("SELECT COUNT(column) FROM table WHERE column = '" + comboBox.Text + "'", connect);
connect.Open();
int the_result = System.Convert.ToInt32(sql.ExecuteScalar());
the_result_textBox.Text = the_result.ToString();
connect.Close();

両方のコードは、別々の形式で正常に機能します。しかし、明らかに次々と機能しません。今、私はここで本当に愚かなことをしていると確信していますが、それを完全に理解することはできません。

4

3 に答える 3

6

これは、SQLがタイプ文字列であるためです。最初の例では、そのように宣言します。

string sql = "SELECT * FROM table WHERE column = '" + comboBox.Text + "'"; 

sql2でExecuteScalarを呼び出したいと思います。

于 2012-04-13T14:56:35.047 に答える
0

試す:

int the_result = System.Convert.ToInt32(sql2.ExecuteScalar());
于 2012-04-13T14:58:08.920 に答える
0

おそらくそれをしたい

sql2.ExecuteScalar()
于 2012-04-13T14:58:09.880 に答える