(20-06-16, 02:39 AM)الوادي كتب : يا مكي،
إذا كنت حاط كود التعديل وكود الاضافة في زر واحد فعندك حلين:
1: تستعلم عن السجل إن كان موجود فيكون كود التعديل اللي يتنفذ وإلا كود الاضافة هو اللي يتنفذ.
2: تضع متغير يكون هو العلامة الفارقة اللي تعرف منها تعديل ولا اضافة وتضع فيه قيمة بعد الاستعلام وضهور البيانات تدل على العملية التالية له تعديل، ماني عارف كيف اشرحها.
كلامك مظبوط وانا عملته بس المشكلة لما باجي استعلم بيقولي لايوجد صفوف ويعمل خطأ
Dim dt As DataTable = New DAL().selectdatatable("select PT_Code from semebl")
Dim da As Integer = (dt.Rows(dt.Rows.Count - 1)(0)).ToString
'Dim da As Integer = dt.Rows(dt.Rows.Count)(0)
Dim c As Integer = CInt(Pt.Txtcode.Text)
Dim d As New DAL
If da <> c Or dt.Rows.Count = 0 Then
d.Dataedit(String.Format("insert into sementbl(PT_Code,PT_Name ,PT_Date,semVolume,semReaction,semAbstination,semColor,semViscosity,semLiqTime,semLiqstat,semAgglutination,semConcen,semCount,semNforms,semVitality,semclsA,semclsB,semclsC,semclsD,semMotileratio,semsthr,semndhr,semrdhr,sempus,semrbcs,spermatogeniccells,semComment) values ({0},'{1}',#{2}#,{3},'{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}',{15},{16},{17},{18},{19},'{20}','{21}','{22}','{23}','{24}','{25}','{26}')", Textcode.Text, txtname.Text, Textdate.Text, txtvl.Text, txtreac.Text, txtabst.Text, Comcolr.Text, Comvisco.Text, txtliqt.Text, Comliqst.Text, comagg.Text, txtconc.Text, txtcount.Text, txtnorforms.Text, txtvitality.Text, txtA.Text, txtB.Text, txtC.Text, txtD.Text, motile, txt1sth.Text, txt2h.Text, txt3h.Text, txtpus.Text, txtrbcs.Text, txtspermato.Text, TxtMark.Text))
MessageBox.Show("تم الحفظ", "save", MessageBoxButtons.OK)
Else
d.Dataedit(String.Format("UPDATE sementbl SET PT_Code = {0},PT_Name='{1}',PT_Date =#{2}#,semVolume= '{3}',semReaction = '{4}', semAbstination='{5}', semColor = '{6}',semLiqTime= '{7}',semLiqstat = '{8}',semAgglutination='{9}', semConcen= '{10}',semCount = '{11}',semNforms = '{12}',semNforms = '{13}',semVitality = '{14}',semclsA='{15}' ,semclsB= '{16}', semclsC = '{17}',semclsD='{18}',semMotileratio={19},semsthr='{20}',semndhr='{22}',semrdhr='{22}',sempus='{23}',semrbcs='{24}',spermatogeniccells='{25}',semComment='{26}' where PT_Code={27} and PT_Date=#{28}#;", Textcode.Text, txtname.Text, Textdate.Text, txtvl.Text, txtreac.Text, txtabst.Text, Comcolr.Text, Comvisco.Text, txtliqt.Text, Comliqst.Text, comagg.Text, txtconc.Text, txtcount.Text, txtnorforms.Text, txtvitality.Text, txtA.Text, txtB.Text, txtC.Text, txtD.Text, motile, txt1sth.Text, txt2h.Text, txt3h.Text, txtpus.Text, txtrbcs.Text, txtspermato.Text, TxtMark.Text, c, Patient.DateTimePicker1.Value.ToString("dd/MM/yyyy")))
MsgBox("تم التعديل")
MessageBox.Show("tomorrow", "bye", MessageBoxButtons.OK)
'd.Dataedit(String.Format("update Result set Result.Result='{0}',recorded=yes,test_comm='{1}' where PT_code={2} and Test_No={3} and test_date=#{4}#", Trim(txtresult.Text), Trim(txtcomment.Text), txtcode.Text, ix, Patient.DateTimePicker1.Value.ToString("yyyy/MM/dd")))
End If
If (Not String.IsNullOrEmpty(txtvl.Text)) Then
d.Dataedit(String.Format("update Result set recorded=yes,Result.Result='{4}',test_comm='{0}' where PT_code={1} and Test_No={2} and test_date=#{3}#", Trim(TxtMark.Text), Pt.Txtcode.Text, 23, Pt.DateTimePicker1.Value.ToString("yyyy/MM/dd"), "See Report"))
End If
(20-06-16, 02:52 AM)حريف برمجة كتب :(20-06-16, 02:13 AM)makky كتب : في حالة انك بضيف اول سجل في جدول(اول سجل) وحاطين كود التعديل وكود الاضافة في زر واحد ازاي نفرق بينهم (ده اول سجل يعني مش هنقدر نجيب منه اي دلاله)
حقل Id يجب ان يكون رقمي.كود :
Dim ret As Integer = (New OleDb.OleDbDataAdapter("SELECT id FROM table1 WHERE id=" & Val(textBox1.Text), conn).Fill(New DataTable))
If ret > 0 Then
' هنا يتم التعديل
Else
' هنا يتم الحفظ
End If
انت هنا انت حصرت الموضوع ز الفكره بتقول لو التيكست بوكس = id يبقي عدل السجل ولو <>يبقي ال id ده مش موجدود يبقي ضيف سجل جديد

