关于执行标量的错误,我无法弄清楚

本文关键字:错误 弄清楚 标量 于执行 执行 | 更新日期: 2023-09-27 18:31:06

我正在用Visual C#制作一个程序,在那里我正在提取数据并将其放入dataGridView中。这一切都很好,但是如果我之后尝试提取更多数据(我想放入文本框中的数据),则会出现错误。

以下是我提取数据并将其放入 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();

以下代码是我尝试在上一个查询之后进行的下一个查询。它在第三行显示此错误,其中显示"执行标量":

"

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();

这两段代码在单独的形式中工作正常。但显然不会一个接一个地工作。现在我确定我在这里做了一些非常愚蠢的事情,但无法完全弄清楚。

关于执行标量的错误,我无法弄清楚

这是因为sql是一个类型字符串。您在第一个示例中将其声明为这样。

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

我想你想在sql2上调用ExecuteScalar。

尝试:

int the_result = System.Convert.ToInt32(sql2.ExecuteScalar());

可能想这样做

sql2.ExecuteScalar()