获取DataGridView中checkBox选中的多行数据并将选中的行插入数据库



代码:(将有关插入的封装到类里面了)

private void btAdd_Click(object sender, EventArgs e)
        {
            try
            {
                string s = "";
                int count = 0;
                for(int i=0;i<dataGridViewAddMX.RowCount;i++)
                {
                    if(dataGridViewAddMX.Rows[i].Cells[0].EditedFormattedValue.ToString()=="True")
                    {
                        string[] b=new string[6];
                         b[0]=dataGridViewAddMX.Rows[i].Cells[1].Value.ToString();
                         b[1]=dataGridViewAddMX.Rows[i].Cells[2].Value.ToString();
                         b[2]=dataGridViewAddMX.Rows[i].Cells[3].Value.ToString();
                         b[3]=dataGridViewAddMX.Rows[i].Cells[4].Value.ToString();
                         b[4]=dataGridViewAddMX.Rows[i].Cells[5].Value.ToString();
                         b[5]=dataGridViewAddMX.Rows[i].Cells[6].Value.ToString() + "-" + dataGridViewAddMX.Rows[i].Cells[7].Value.ToString();
                         s=DAL.TcEuipmentQuery.InsertMX(sReport, b);
                        count++;
                    }
                }
                if (s == "成功")
                {
                    MessageBox.Show("添加成功");
                    AddBind(sReport);
                }
                else
                {
                    MessageBox.Show("添加失败");
                }
                if (count == 0)
                    MessageBox.Show("请至少选择一条数据", "提示");
              
            }
            catch(SqlException ee)
            {
                MessageBox.Show(ee.Message);
            }
        }


insert语句(使用存储过程)

public static string  InsertMX(string sReport,string[] b)
        {
            string s = "";
            SqlParameter p = new SqlParameter("@result", SqlDbType.NVarChar, 50);
            p.Direction = ParameterDirection.Output;
            string sql = "TorchLab.dbo.T_InsertMX";
            SqlParameter[] param_MX ={
                                                      new SqlParameter("@sReport",SqlDbType.NVarChar,50),
                                                      new SqlParameter("@fOrder",SqlDbType.NVarChar,50),
                                                      new SqlParameter("@fName",SqlDbType.NVarChar,250),
                                                      new SqlParameter("@fModel",SqlDbType.NVarChar,250),
                                                      new SqlParameter("@fNumber",SqlDbType.NVarChar,50),
                                                      new SqlParameter("@fManufacturer",SqlDbType.NVarChar,50),
                                                      new SqlParameter("@fValidity",SqlDbType.NVarChar,50),
                                                      p
                                                };
            param_MX[0].Value = sReport;
            param_MX[1].Value = b[0];
            param_MX[2].Value = b[1];
            param_MX[3].Value = b[2];
            param_MX[4].Value = b[3];
            param_MX[5].Value = b[4];
            param_MX[6].Value = b[5];
            DbHelperSQL.RunProc(sql, param_MX);
            s = p.Value.ToString();
            return s;
        }


存储过程代码:

ALTER  PROCEDURE [dbo].[T_InsertMX]
 -- Add the parameters for the stored procedure here
 (
        @sReport nvarchar(50),
        @fOrder nvarchar(50),
        @fName nvarchar(50),
        @fModel nvarchar(50),
        @fNumber nvarchar(50),
        @fManufacturer nvarchar(50),
        @fValidity nvarchar(50),
        @result nvarchar(50) output
    )
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;
 set @result='失败'

    -- Insert statements for procedure here
 Insert Into Tmp_TestReportMX(sReport,fOrder,fName,fModel,fNumber,fManufacturer,fValidity)
 values(@sReport,@fOrder,@fName,@fModel,@fNumber,@fManufacturer,@fValidity)
 
 set @result='成功'
END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值