Aydotcom Ответов: 1

У меня есть ошибка обновления таблицы


Я разрабатываю решение, которое имеет master и addEmployee в виде таблицы и формы соответственно. Решение обновит данные в master с помощью формы addEmployee. Решение использует C# и базы данных sql2008 в качестве бэк-конец. После компиляции решения бэк-энд не имеет никаких данных, и я получаю сообщение об ошибке " не Обновлено"
Кто-нибудь может мне помочь?

Что я уже пробовал:

private void btnUpdate_Click_1(object sender, EventArgs e)
       {


           if (textBox1.Text == "")
           {
               MessageBox.Show("Please enter valid data...");
           }
           else
           {
               FileStream fs = new FileStream(textBox1.Text, FileMode.OpenOrCreate, FileAccess.Read);
               byte[] bt = new byte[fs.Length];
               fs.Read(bt, 0, System.Convert.ToInt32(fs.Length));
               fs.Close();


               SqlConnection con = new SqlConnection();
               con.ConnectionString = "Data Source=AKINTOMIDE-HP\\SQLEXPRESS;Initial Catalog=fham;Integrated Security=True";
                SqlCommand cmd = new SqlCommand("update master set mon=@Mon , yr=@Yr, dat=@datAd,staf=@Staf,adrs=@Adrs,coy=@Coy,loc=@Loc,dpt=@Dpt,grd= @Grd,datead= @datEmp,datemod=@DatMod,bsal=@BSal,[tran]=@Tran,hous=@Hous,lunc=@Lunc,uti=@Uti,furn=@Furn,harz=@Harz,educ=@Educ,housM=@HousM,dres=@Dres,risk=@Risk,veh=@Veh,driv=@Driv,dome=@Dome,pfs=@PfS,nhf=@NHF,nhfs=@NHFS,oded=@Oded,housU=@HousU,staffM=@StaffM,thrift=@Thrift,accno=@Accno,bank= @Bank,email=@email,penadmin=@PenAdmin,pennum=@PenNum,status=@Status,dupfront=@DUpfront,picstaffpix=@picStafPix,pens=@Pens,paye=@PAYE,Tpay=@TPay,npay=@NPay WHERE eid= @eid ", con);
               con.Open();
               cmd.Parameters.AddWithValue("@eid", txteid.Text);
               cmd.Parameters.AddWithValue("@yr", cmbYr.Text);
               cmd.Parameters.AddWithValue("@dat", datAd.Text);
               cmd.Parameters.AddWithValue("@datead", datEmp.Text);
               cmd.Parameters.AddWithValue("@datemod", DatMod.Text);
               cmd.Parameters.AddWithValue("@staf", txtStaf.Text);
               cmd.Parameters.AddWithValue("@adrs", txtAdrs.Text);
               cmd.Parameters.AddWithValue("@coy", txtCoy.Text);
               cmd.Parameters.AddWithValue("@dpt", cmbDpt.Text);
               cmd.Parameters.AddWithValue("@loc", cmbLoc.Text);
               cmd.Parameters.AddWithValue("@grd", CmbGrd.Text);
               cmd.Parameters.AddWithValue("@accno", TxtAccno.Text);
               cmd.Parameters.AddWithValue("@email", txtemail.Text);
               cmd.Parameters.AddWithValue("@picstaffpix", bt);
               cmd.Parameters.AddWithValue("@bank", cmbBank.Text);
               cmd.Parameters.AddWithValue("@penadmin", cmbPenAdmin.Text);
               cmd.Parameters.AddWithValue("@status", cmbStatus.Text);
               cmd.Parameters.AddWithValue("@pennum", txtPenNum.Text);
               cmd.Parameters.AddWithValue("@bsal", txtBSal.Text);
               cmd.Parameters.AddWithValue("@dres", txtDres.Text);
               cmd.Parameters.AddWithValue("@dupfront", txtDUpfront.Text);
               cmd.Parameters.AddWithValue("@educ", txtEduc.Text);
               cmd.Parameters.AddWithValue("@furn", txtFurn.Text);
               cmd.Parameters.AddWithValue("@harz", txtHarz.Text);
               cmd.Parameters.AddWithValue("@tran", txtTran.Text);
               cmd.Parameters.AddWithValue("@hous", txtHous.Text);
               cmd.Parameters.AddWithValue("@lunc", txtLunc.Text);
               cmd.Parameters.AddWithValue("@uti", txtUti.Text);
               cmd.Parameters.AddWithValue("@housM", txtHousM.Text);
               cmd.Parameters.AddWithValue("@risk", txtRisk.Text);
               cmd.Parameters.AddWithValue("@veh", txtVeh.Text);
               cmd.Parameters.AddWithValue("@pfs", txtPfS.Text);
               cmd.Parameters.AddWithValue("@nhf", txtNHF.Text);
               cmd.Parameters.AddWithValue("@nhfs", txtNHFS.Text);
               cmd.Parameters.AddWithValue("@oded", txtOded.Text);
               cmd.Parameters.AddWithValue("@pens", txtPens.Text);
               cmd.Parameters.AddWithValue("@paye", this.txtPAYE.Text);
               cmd.Parameters.AddWithValue("@tded", txtTDed.Text);
               cmd.Parameters.AddWithValue("@driv", txtDriv.Text);
               cmd.Parameters.AddWithValue("@dome", txtDome.Text);
               cmd.Parameters.AddWithValue("@tpay", txtTPay.Text);
               cmd.Parameters.AddWithValue("@npay", txtNPay.Text);
               cmd.Parameters.AddWithValue("@housU", this.txtHousU.Text);
               cmd.Parameters.AddWithValue("@staffM", this.txtStaffM.Text);
               cmd.Parameters.AddWithValue("@thrift", this.txtThrift.Text);
               cmd.Parameters.AddWithValue("@mon", cmbMon.Text);
               cmd.Parameters.AddWithValue("@otherP", this.txtOtherPay.Text);
                 cmd.Connection = con;
               try
               {
                   cmd.ExecuteNonQuery();
                   MessageBox.Show("Updated...");
                   textBox1.Text = "";

               }
               catch (Exception)
               {
                   MessageBox.Show("Not Updated");
               }
               finally
               {
                   con.Close();
               }
           }
       }

1 Ответов

Рейтинг:
2

OriginalGriff

Начните с того, что не отбрасывайте важную информацию!
Вы действительно не должны делать "глобальный" catch с Exception вы должны стараться быть более явными и ловить только те ошибки, с которыми вы можете справиться, например SqlException но в данном случае это менее важно, чем не отбрасывать саму проблему.
Замените свой улов:

catch (Exception ex)
{
    MessageBox.Show("Not Updated:\n" + ex.Message);
}
Таким образом, окно сообщения не только сообщит вам, что это было за исключение, но и вы сможете использовать ex объект в отладчике для более детального изучения проблемы.

На данный момент вы отбрасываете всю информацию, которую может дать вам система, и без этого никто не догадается, в чем на самом деле заключается проблема!


Aydotcom

Спасибо за помощь. Однако после внесения поправок в соответствии с рекомендациями и исправления всех всплывающих ошибок я теперь получил "Обновлено", но ни одна строка не была обновлена в таблице. Пожалуйста, помогите мне дальше

OriginalGriff

Как вы ожидаете помощи по коду, который я даже не вижу?