c# winform 多句sql查询

来源:百度知道 编辑:UC知道 时间:2024/05/27 04:20:04
按照我下面写的那样的代码,如果在text中写多句sql语句的话,为什么只执行第一句呢
比如:SELECT * FROM TABLE1;
SELECT * REOM TABLE2;
这样就只执行第一句呢?
private void button1_Click(object sender, EventArgs e)
{
try
{
string str = @"server=**;database=**;User ID=** ;password=**";

SqlConnection conn = new SqlConnection(str);
string sql = inputbox.Text;
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();

SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
da.SelectCommand = cmd;
da.Fill(dt);

dataGridView1.DataSource = dt;
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

两个语句其实都执行了。这样的情况下建议使用SqlDataReader手动读取数据,使用它的NextResult()方法能读取到第二个数据集。

也不是只执行一句。用了这样返回两个表的情况。默认只能提取第一个数据集。

1,你用UNION把两个结构相同的表连起来。
2,在程序端把两张表分别提取出来放在两个集合中。
3,使用两个Command返回两个数据源。

你返回的是DataTable,换成DataSet的话就应该有2个表了