hamishegi
پنج شنبه 16 شهریور 1385, 10:09 صبح
1-acceptchanges فقط داده ها رو در حوزه ی dataset به روز رسانی میکنه نه db . یعنی اگه بعدش دستور getchanges رو اجرا کنی ،برنامه هیچ چیزی رو واسه update کردن پیدا نمیکنه.کمی عجیب به نظر میاد ولی چیزی که من دستگیرم شده همینه.
2- عرض کردم که! شما باید "دستورات" update , insert,... رو دستی وارد کنی. به عبارت دیگر وقتی برنامه
به "تابع" update شما رسید، نمیدونه چی رو باید update کنه. اینو شما باید قبلا براش تعریف کرده باشی( insercommand , deletecommand , updatecommand و selectcommand).
مثال زیر رو از برنامه ای گرفتم که کد ها رو بطور اتوماتیک ساخته. من بخشی رو که نیاز شماست میفرستم و بقیه رو برای اینکه گیجت نکنه پاک میکنم. بخشهای مختلف رو با یه خط خالی از هم جدا کردم. احتمالا مجبور میشی Me ها رو هم پاک کنی.همه چیز مقدمه است بجز دو بخش آخر. یعنی oledbupdatecommand1 و پارامتر هاش:
Me.da = New System.Data.OleDb.OleDbDataAdapter()
Me.OleDbSelectCommand1 = New System.Data.OleDb.OleDbCommand()
Me.OleDbInsertCommand1 = New System.Data.OleDb.OleDbCommand()
Me.OleDbUpdateCommand1 = New System.Data.OleDb.OleDbCommand()
Me.OleDbDeleteCommand1 = New System.Data.OleDb.OleDbCommand()
Me.OleDbConnection1 = New System.Data.OleDb.OleDbConnection()
Me.Ds1 = New gugu.ds()
Me.daPassport.DeleteCommand = Me.OleDbDeleteCommand1
Me.daPassport.InsertCommand = Me.OleDbInsertCommand1
Me.daPassport.SelectCommand = Me.OleDbSelectCommand1
Me.daPassport.UpdateCommand = Me.OleDbUpdateCommand1
Me.da.TableMappings.AddRange(New System.Data.Common.DataTableMapping() {New System.Data.Common.DataTableMapping("Table", "passport", New System.Data.Common.DataColumnMapping() {New System.Data.Common.DataColumnMapping("pass_type", "pass_type"), New System.Data.Common.DataColumnMapping("pass_no", "pass_no"), New System.Data.Common.DataColumnMapping("pass_issue", "pass_issue"), New System.Data.Common.DataColumnMapping("pass_expiry", "pass_expiry"), New System.Data.Common.DataColumnMapping("pass_renew", "pass_renew"), New System.Data.Common.DataColumnMapping("visa_type", "visa_type"), New System.Data.Common.DataColumnMapping("id", "id")})})
'OleDbUpdateCommand1
'
Me.OleDbUpdateCommand1.CommandText = "UPDATE passport SET id = ?, pass_expiry = ?, pass_issue = ?, pass_no = ?, pass_re" & _
"new = ?, pass_type = ?, visa_type = ? WHERE (id = ?) AND (pass_expiry = ? OR ? I" & _
"S NULL AND pass_expiry IS NULL) AND (pass_issue = ? OR ? IS NULL AND pass_issue " & _
"IS NULL) AND (pass_no = ? OR ? IS NULL AND pass_no IS NULL) AND (pass_renew = ?)" & _
" AND (pass_type = ? OR ? IS NULL AND pass_type IS NULL) AND (visa_type = ? OR ? " & _
"IS NULL AND visa_type IS NULL)"
Me.OleDbUpdateCommand1.Connection = Me.OleDbConnection1
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("id", System.Data.OleDb.OleDbType.Integer, 0, System.Data.ParameterDirection.Input, False, CType(10, Byte), CType(0, Byte), "id", System.Data.DataRowVersion.Current, Nothing))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("pass_expiry", System.Data.OleDb.OleDbType.DBDate, 0, "pass_expiry"))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("pass_issue", System.Data.OleDb.OleDbType.DBDate, 0, "pass_issue"))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("pass_no", System.Data.OleDb.OleDbType.VarWChar, 50, "pass_no"))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("pass_renew", System.Data.OleDb.OleDbType.Boolean, 2, "pass_renew"))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("pass_type", System.Data.OleDb.OleDbType.VarWChar, 50, "pass_type"))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("visa_type", System.Data.OleDb.OleDbType.VarWChar, 50, "visa_type"))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_id", System.Data.OleDb.OleDbType.Integer, 0, System.Data.ParameterDirection.Input, False, CType(10, Byte), CType(0, Byte), "id", System.Data.DataRowVersion.Original, Nothing))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_pass_expiry", System.Data.OleDb.OleDbType.DBDate, 0, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "pass_expiry", System.Data.DataRowVersion.Original, Nothing))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_pass_expiry1", System.Data.OleDb.OleDbType.DBDate, 0, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "pass_expiry", System.Data.DataRowVersion.Original, Nothing))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_pass_issue", System.Data.OleDb.OleDbType.DBDate, 0, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "pass_issue", System.Data.DataRowVersion.Original, Nothing))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_pass_issue1", System.Data.OleDb.OleDbType.DBDate, 0, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "pass_issue", System.Data.DataRowVersion.Original, Nothing))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_pass_no", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "pass_no", System.Data.DataRowVersion.Original, Nothing))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_pass_no1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "pass_no", System.Data.DataRowVersion.Original, Nothing))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_pass_renew", System.Data.OleDb.OleDbType.Boolean, 2, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "pass_renew", System.Data.DataRowVersion.Original, Nothing))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_pass_type", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "pass_type", System.Data.DataRowVersion.Original, Nothing))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_pass_type1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "pass_type", System.Data.DataRowVersion.Original, Nothing))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_visa_type", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "visa_type", System.Data.DataRowVersion.Original, Nothing))
Me.OleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_visa_type1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "visa_type", System.Data.DataRowVersion.Original, Nothing))
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.