在一个datagridview中组合sql结果 [英] Combine to sql results in one datagridview

查看:71
本文介绍了在一个datagridview中组合sql结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好!

我有两个搜索sql命令,我想在一个datagridview中得到结果。我该怎么做?

I have two search sql commands and I would like to get the result in one datagridview. How can i do this?

我的搜索代码:

首先 -  

First - 

private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;";
                OleDbConnection conn = new OleDbConnection(connStr);
                OleDbDataAdapter da = new OleDbDataAdapter("Select * from [" + testcb.SelectedItem.ToString() + "$] where [" + addcb.SelectedItem.ToString() + "] = '" + addtb.Text + "'", conn);

                DataTable ds = new DataTable();
                da.Fill(ds);
                dataGridView2.DataSource = ds;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

秒 -  

Second - 

 private void searchbtn_Click(object sender, EventArgs e)
        {
            try
            {
                string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;";
                OleDbConnection conn = new OleDbConnection(connStr);
                OleDbDataAdapter da = new OleDbDataAdapter("Select * from [" + testcb.SelectedItem.ToString() + "$] where [" + comboBox1.SelectedItem.ToString() + "] = '" + textBox5.Text + "'", conn);
                DataTable dt = new DataTable();
                da.Fill(dt);
                dataGridView2.DataSource = dt;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

我有一个datagridview,希望在一个$ b中看到2个请求的总结果$ b (表格将相同!)

I have one datagridview and would like to see total result of 2 requests in one (tables will be the same!)

非常感谢!

此致,

Adil Aliyev

Adil Aliyev

推荐答案

有人刚刚问了一个
类似的问题在这里
,我建议尝试使用UNION进行查询。

Someone just recently asked a similar question here, I recommend trying to query with UNION.

SELECT *
FROM [Process_Updates]
WHERE [Process_Updates].[Type] LIKE "Andrew*"

UNION 

SELECT * 
FROM KB_Articles
WHERE KB_Articles.[Type] LIKE "Andrew*"

如果用SELECT [要返回的字段]替换SELECT *,则替换WHERE [Type] LIKE" Andrew *"使用参数,例如cmd.Parameters.AddWithValue等。

Where you replace SELECT * with SELECT [fields to return], replace WHERE [Type] LIKE "Andrew*" with a parameter e.g. cmd.Parameters.AddWithValue etc.

注意正如我在您提出的其他问题中指出的那样,请远离在SQL中使用字符串连接。

Note as I indicated in your other question, please stay away from using string concatenation in your SQL.


  • 如果某个值中有撇号并按现在编码,则在运行查询时会在运行时抛出执行。使用AddWithValue添加参数的大约99%的时间都很好,另外一个百分比需要通过添加到参数集合来添加参数
  • 接下来,无论如何例如,最好使用参数来防止SQL注入。


这篇关于在一个datagridview中组合sql结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆