【问题标题】:Datagridview with query in C#在 C# 中带有查询的 Datagridview
【发布时间】:2014-06-30 08:55:55
【问题描述】:

我在 MySql 中有 2 个表(隐私,诉讼_under_500), 在隐私方面,我有 2 列(id,nameofcase), 在诉讼_under_500 4列(id,nameofcase,priceone,pricetwo) , 我用 datagridview 制作了一个表单,我想执行这个查询:

select  privacy.id,lawsuit_under_500.id,privacy.nameofcase, lawsuit_under_500.priceone, lawsuit_under_500.pricetwo
From privacy inner join lawsuit_under_500
where  lawsuit_under_500.id=5 and privacy.id=1 || lawsuit_under_500.id=1 and privacy.id=2  || lawsuit_under_500.id=10 and privacy.id=3
ORDER BY privacy.id  

我的形式是:

  public Form55()
        {
            InitializeComponent();
        }

        private void Form55_Load(object sender, EventArgs e)
        {

        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

我已将表格放入我的数据集中,但我不知道如何制作它。我试图在datagridview中创建privacyBindingSourse,并手动为priceone和pricetwo添加了2个按钮,我无法输入查询,以便获取信息。 任何想法/帮助如何制作它?

如果您有任何问题,请在回答之前问我

【问题讨论】:

    标签: c# mysql .net winforms datagridview


    【解决方案1】:
    using MySql.Data.MySqlClient;
    
    MySqlConnection conn = new MySqlConnection("Your MY SQL connection");
    MySqlCommand cmd = new MySqlCommand("Your Mysql query");
    MySqlDataReader dr=cmd.ExecuteReader();
    
    gridview1.datasource=dr;
    gridview1.databind();
    
    // try this also
    
    connectionString = "Your Connection";
    
    connection = new MySqlConnection(connectionString);
    
    if (this.OpenConnection() == true)
    {
        mySqlDataAdapter = new MySqlDataAdapter("Your Query", connection);
        DataSet DS = new DataSet();
        mySqlDataAdapter.Fill(DS);
        dataGridView1.DataSource = DS.Tables[0];
    
        //close connection
        this.CloseConnection();
    }
    

    【讨论】:

    • 我把这个放在哪里了?在 form55_Load 中?
    • 是的。如果您想在单击按钮时加载数据网格,您也可以使用 buttonClick 事件。
    • 代码中的最后两行是错误的。它应该是 dataGridView1 。但现在数据源和数据绑定是错误的
    • 虽然这个代码块可能会回答这个问题,但最好能稍微解释一下为什么会这样。
    • 您的应用程序是 ASP.Net 吗?
    【解决方案2】:

    我是这样弄的

     private void Form56_Load(object sender, EventArgs e)
            {
    
    
                try
                {
                    MySqlConnection cnn = new MySqlConnection("MY CONNECTION");
    
                    cnn.Open();
                    // - DEBUG 
                    // MessageBox.Show("Connection successful!"); 
                    MySqlDataAdapter MyDA = new MySqlDataAdapter();
                    MyDA.SelectCommand = new MySqlCommand("MY QUERY", cnn);
                    DataTable table = new DataTable();
                    MyDA.Fill(table);
    
                    BindingSource bSource = new BindingSource();
                    bSource.DataSource = table;
    
                    dataGridView1.DataSource = bSource;
    
                }
                catch (MySql.Data.MySqlClient.MySqlException ex)
                {
                    MessageBox.Show(ex.Message);
                    Close();
                }
    
            }
    

    【讨论】:

      【解决方案3】:
             static  public SqlCeConnection OpenSQL()
          {
              SqlCeConnection cncount = new SqlCeConnection(@"Data Source = " + Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase) + @"\Database.sdf; Password =''");
              return cncount;
          }
      
          static  public DataTable  DoSelect( string strSQL)
          {
              SqlCeConnection cn = OpenSQL();
      
              DataTable dtRetValue = new DataTable();
      
              using (SqlCeDataAdapter da = new SqlCeDataAdapter())
              {
                  using (SqlCeCommand cmd = cn.CreateCommand())
                  {
                      cmd.CommandText = strSQL;
                      da.SelectCommand = cmd;
      
                      if (cn.State == ConnectionState.Closed)
                      {
                          cn.Open();
                      }
      
                      try
                      {
                          //using (SqlCeDataReader reader = da.SelectCommand.ExecuteReader())
                          SqlCeDataReader metsDr = da.SelectCommand.ExecuteReader();
                          dtRetValue.Load(metsDr);
      
      
                          return dtRetValue;
                      }
                      catch (Exception ex)
                      {
                          MessageBox.Show(ex.Message, "Error - DoSelect", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                          return null;
                      }
                  }
              }
          }
      

      插入按钮

              string sql1 = "YOURE QUERY ";
              DataTable dt1 = SQLcode.DoSelect(sql1);
              dgvcompany.DataSource = dt1;
      

      【讨论】:

        猜你喜欢
        • 2011-08-22
        • 2013-12-05
        • 2014-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-05
        • 1970-01-01
        相关资源
        最近更新 更多