2017-02-24 38 views
0

我有数据库名称的datagrid视图。我想在查询中使用它们。我会用checbox来选择它们。我做一个按钮谁做这个查询。我的问题是我怎么能从数据组视图中选中的单元格参数? 这是按钮的代码:C#使用checbkox获取datagrid单元格来查询

private void UpdSalaryMonthTime_Click(object sender, EventArgs e) 
     { 
      foreach (DataGridViewRow item in dataGridView1.Rows) 
      { 

       DataGridViewCheckBoxCell chk = item.Cells[0] as DataGridViewCheckBoxCell; 


       if (Convert.ToBoolean(chk.Value) == true) 
       { 
        connection.Open(); 
        SqlCommand cmd = new SqlCommand(@"USE @Name 

    Update VariablesHistory 
    set [Date] = CAST(FLOOR(CAST([Date] AS FLOAT)) AS DATETIME) 
    Update ContractFormulaSalaryHistory 
    set [Date] = CAST(FLOOR(CAST([Date] AS FLOAT)) AS DATETIME) 
    Update FormulaSalaryHistory 
    set [Date] = CAST(FLOOR(CAST([Date] AS FLOAT)) AS DATETIME) 

    Update ValueSalary 
    set [Date] = CAST(FLOOR(CAST([Date] AS FLOAT)) AS DATETIME) 
    Update SalaryMonth 
    set [Month] = CAST(FLOOR(CAST([Month] AS FLOAT)) AS DATETIME) 

    Update LengthOfService 
    set [Month] = CAST(FLOOR(CAST([Month] AS FLOAT)) AS DATETIME) 


    Update Dekl1Value 
    set [Date] = CAST(FLOOR(CAST([Date] AS FLOAT)) AS DATETIME) 
    Update Dekl1FormulaHistory 
    set [Date] = CAST(FLOOR(CAST([Date] AS FLOAT)) AS DATETIME) 
    Update Dekl6Value 
    set [Date] = CAST(FLOOR(CAST([Date] AS FLOAT)) AS DATETIME) 
    Update Dekl6FormulaHistory 
    set [Date] = CAST(FLOOR(CAST([Date] AS FLOAT)) AS DATETIME) 


    --Update TaxRecalculationFormulaHistory 
    --set [Date] = CAST(FLOOR(CAST([Date] AS FLOAT)) AS DATETIME)", connection); 


        cmd.CommandTimeout = 0; 
        cmd.ExecuteNonQuery(); 
        connection.Close(); 
        MessageBox.Show("Updated!", "Updated", MessageBoxButtons.OK, MessageBoxIcon.Information); 
       } 
      } 
     } 

对不起,我在C#中新自学习。 :) 谢谢!

回答

0

使用@Name将使其考虑为字符串值而不是数据库名称。 更好的选择是在执行命令之前使用ChangeDatabase方法更改数据库的名称。

connection.ChangeDatabase("your database name from the datagrid cell or from anywhere view here ")