PDA

View Full Version : مشکل در ADO.NET



Microsoft.net
چهارشنبه 21 مرداد 1383, 20:44 عصر
من سالها با ADO کار کردم ولی وقتی با ADO.Net کارمو شروع کردم یه مشکلاتی پیدا کردم از جمله اینکه من یک کویری می گیرم و در دیتاست Fill می کنم ولی اگر کویری تهی باشه پیغام خطا می ده از کجا بفهمم که تهی هست یا نه قبل از اینکه fill کنم توی ADO خاصیتی به نام EOF داشت ...

ممنون میشم اگه جواب بدین

(سیدشریفی)
پنج شنبه 22 مرداد 1383, 10:25 صبح
من از این روش استفاده کرده ام
امیدوارم بدردتان بخورد

If DS.Tables("MS_Access_Dataset").Rows.Count <> 0 Then
:roll:

Microsoft.net
پنج شنبه 22 مرداد 1383, 13:56 عصر
ممنونم از جوابتون ولی من زمانی که یک کویری می کیرم اگه تهی باشه و اونو fill کنم توی dataset خطا میده به نظر شما چی کار کنم ؟

sh
پنج شنبه 22 مرداد 1383, 16:31 عصر
اگر هم خالی باشه نباید خطا بده مشکل رو در جای دیگه جستجو کن

Try
0000
Catch

(سیدشریفی)
شنبه 24 مرداد 1383, 09:53 صبح
به نظر من هم مشکل جای دیگری است .
آقا شهریار هم که در این کار استادند پس در جای دیگر برنامه دنبال مشکل بگردید .
:roll:

Microsoft.net
شنبه 24 مرداد 1383, 23:15 عصر
ببخشید میشه بگین کار try , catch دقیقا چیه ؟ ممنونم

sh
شنبه 24 مرداد 1383, 23:41 عصر
Try

OleDbDataAdapter1.Update(DataSet11, "Tcodecol")
DataSet11.Tcodecol.Clear()
TextBox1.Focus()

Catch ex As OleDb.OleDbException
If ex.ErrorCode = -2147467259 Then
MessageBox.Show("کد وارد شده تکراری میباشد", "ایجاد کد", MessageBoxButtons.OK, MessageBoxIcon.Error)
DataSet11.Tcodecol.Clear()
codekolload()
TextBox1.Clear()
TextBox1.Focus()
Exit Sub
End If
End Try

ببین مثلا در کد بالا بین Try و Catch کد مربوط به آپدیت کردن دیتابیس رو نوشتم و در قسمت زیر


Catch ex As OleDb.OleDbException
یک خطا از نوع خطاهای بانک اطلاعاتی تعریف کرده ام و گفتم اگر شماره خطای تولید شده فلان بود پیغام مناسب رو نمایش بده

کلا این روش راهی برای گیر انداختن خطاها و مدیریت و نمایش پیغام مناسب به کاربر هست اگر شما در قسمت نمایش اینطور بنویسید

MessageBox.Show(ex.Message.ToString)

آنوقت پیغامی مبنی بر خطای بوقوع پیوسته با جزئیات بیشتری برای شما نمایش داده میشود و شما میتوانید راحتتر به خطای برنامه خود پی ببرید

در قسمت اول اگر خطائی رخ دهد کدهای قسمت دوم اجرا میشود یعنی بین Catch و End try

البته یه قسمت فاینالی هم داره که میتونی راجب همه اینها در MSDN تحقیق کنی