DataGridView可以保存的行項保存後自動刪除,不能保存的行項將數據庫的報錯寫進DataGridView行項中

//首先定義一個全局變量 k
int k = 0;
//保存按鈕事件
private void btnSave_Click(object sender, EventArgs e)
{
    k = 0;
    try
    {
        //sesstab是我的一個全局變量表,也可以理解成dataGridView
        //這裏是在保存的時候將我的dataGridView循環插入數據庫
          for (int i = 0; i < sesstab.Rows.Count; i++)
          {
              byte[] img = (byte[])sesstab.Rows[i]["照片"];
              string xm = (string)sesstab.Rows[i]["姓名"];
              string xb = (string)sesstab.Rows[i]["性別"];
              string mz = (string)sesstab.Rows[i]["民族"];
              string cs = (string)sesstab.Rows[i]["出生日期"];
              string sfz = (string)sesstab.Rows[i]["身份證號"];
              string jg = (string)sesstab.Rows[i]["住址/籍貫"];
              string qfjg = (string)sesstab.Rows[i]["簽發機關"];
              string yxqs = (string)sesstab.Rows[i]["有效期始"];
              string yxqz = (string)sesstab.Rows[i]["有效期止"];
              try
              {
                  SqlConnection sqlCnt = new SqlConnection(sqlconn);
                  sqlCnt.Open();
                  SqlCommand command = new SqlCommand();
                  command.Connection = sqlCnt;
                  command.CommandType = CommandType.Text;
                  command.CommandText = "exec sys_kqSystem_toTX_entry_add @company_FK,@companyName,@dept,@userName,@Sfz,@BornDate,@sex,@PyDate,@Nation_Name,@HomeAddr,@IfDaKa,@whr,@whrName,@img,@G_fzjg,@G_sfzyxr,@G_sfzsxr";
                  command.Parameters.Add("@company_FK", SqlDbType.VarChar, 10).Value = ddlRzgs.SelectedValue.ToString();
                  command.Parameters.Add("@companyName", SqlDbType.VarChar, 20).Value = ddlRzgs.Text.ToString();
                  command.Parameters.Add("@dept", SqlDbType.VarChar, 20).Value = deptId;
                  command.Parameters.Add("@userName", SqlDbType.VarChar, 20).Value = xm;
                  command.Parameters.Add("@Sfz", SqlDbType.VarChar, 18).Value = sfz;
                  command.Parameters.Add("@BornDate", SqlDbType.VarChar, 10).Value = cs;
                  command.Parameters.Add("@sex", SqlDbType.VarChar, 2).Value = xb;
                  command.Parameters.Add("@PyDate", SqlDbType.VarChar, 10).Value = txtRzrq.Text.Trim();
                  command.Parameters.Add("@Nation_Name", SqlDbType.VarChar, 20).Value = mz;
                  command.Parameters.Add("@HomeAddr", SqlDbType.VarChar, 200).Value = jg;
                  command.Parameters.Add("@IfDaKa", SqlDbType.VarChar, 2).Value = ddlDk.Text.ToString();
                  command.Parameters.Add("@whr", SqlDbType.VarChar, 10).Value = FormM.lbluserLog.Text.Trim();
                  command.Parameters.Add("@whrName", SqlDbType.VarChar, 20).Value = FormM.lbtnUserName.Text.Trim();
                  command.Parameters.Add("@img", SqlDbType.Image).Value = img;
                  command.Parameters.Add("@G_sfzyxr", SqlDbType.VarChar, 10).Value = yxqs;
                  command.Parameters.Add("@G_sfzsxr", SqlDbType.VarChar, 10).Value = yxqz;
                  command.Parameters.Add("@G_fzjg", SqlDbType.VarChar, 50).Value = qfjg;
                  command.ExecuteNonQuery();
                  sqlCnt.Close();
                  DataGridViewRow row = GV.Rows[i];
                  GV.Rows.Remove(row);//保存成功刪除行  
                  i--;
                  k = i;
                  k++;
              }
              catch (Exception entryerr)
              {
                  strErr = entryerr.Message.ToString();
                  GV.Rows[k].Cells["錯誤信息"].Value = strErr;//將錯誤信息寫入當前行列
                  k++;
                  continue;//錯誤之後繼續執行
              }
        }
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章