【问题标题】:Load values from MySQL DB to specific column in datagrid view将 MySQL DB 中的值加载到 datagridview 中的特定列
【发布时间】:2015-04-13 07:28:48
【问题描述】:

我想从数据库中提取数据。我只需要显示前三列 (0,1,2) 而不是全部。我怎么能那样做?

>     string selectQuery = "select command line goes here where.... offerMadeBy='"+cbox1.Text.ToString()+"';";
>                 MySqlConnection sqlCOnnect = new MySqlConnection(RootDBConnection.myConnection);
>                 MySqlCommand sqlCmd = new MySqlCommand(selectQuery,sqlCOnnect);
>                 MySqlDataAdapter sqlAdapter;
>                 try {
>                     sqlAdapter = new MySqlDataAdapter();
>                     sqlAdapter.SelectCommand = sqlCmd;
>     
>                     DataTable dbset = new DataTable();
>                     sqlAdapter.Fill(dbset);
>                     BindingSource bindSource = new BindingSource();
>     
>                     _dataGridView.DataSource = null;
>                     bindSource.DataSource = dbset;
>                     _dataGridView.DataSource = bindSource;
>                     sqlAdapter.Update(dbset);
>     
>     
>                     if (sqlCOnnect.State == ConnectionState.Open) {
>                         sqlCOnnect.Close();
>                     }
>                 }catch(MySqlException ex){
>                     MessageBox.Show("Can't load data from DB.\nReason:"+ex.Message);
>                 }

【问题讨论】:

  • 你不能只在你的 sql (selectQuery) 中选择你需要的列吗?

标签: c# mysql database winforms datagrid


【解决方案1】:

您可以从数据库中选择所需的字段。此外,您必须打开与 SQL 的连接并最后使用参数,例如:

string selectQuery = "select field1,field2,field3 from mytable where offerMadeBy=@param";
MySqlConnection sqlCOnnect = new MySqlConnection(RootDBConnection.myConnection);
MySqlCommand sqlCmd = new MySqlCommand(selectQuery,sqlCOnnect);
sqlCmd.Parameters.AddWithValue("@param", cbox1.Text.ToString());
try { 
       sqlCOnnect.Open()
       using (sqlCOnnect)
       {
        ....
       }
      }

【讨论】:

  • 好吧,提示一下。这很明显,就像从 DB 获取值到 Combobox。好的,你能解释一下为什么我应该这样写“@”和Parameters.AddWIthValue吗?这只是防止 SQL 注入?
  • 是的,最重要的好处是防止注入,而且使用参数优化了 c# 部分的查询执行
猜你喜欢
  • 1970-01-01
  • 2014-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-20
  • 1970-01-01
  • 2016-01-09
相关资源
最近更新 更多