سلام
چه طوری میشه فهمید بعد از کوئری گرفتن از بانک- دستور کوئری رکوردی رو پیدا کرده یا نه؟؟
Printable View
سلام
چه طوری میشه فهمید بعد از کوئری گرفتن از بانک- دستور کوئری رکوردی رو پیدا کرده یا نه؟؟
با استفاده از ExecuteReader و تابع Read میتوانید متوجه بشید
میشه مثال بزنید؟؟نقل قول:
این دستورات با ado.net هستن یا لینک؟؟
البته منظور من با لینک بود!
ممنون
** همونطور که دوستمون گفتنند یکی از روش ها استفاده از ExecuteReader و تابع Read هستش.
به نمونه کد زیر یه نگاه بنداز:
- اون شرط While رو ، توی یه if بزار ، اگه true بود که حداقل یه رکورد پیدا کرده ، در غیر اینصورت رکوردی پیدا نکرده.کد:http://open-source.blogfa.com/post-64.aspx
*** یکی از روش های دیگه که خودم غالبا استفاده میکنم ، اینه که توی دستور Select ام ، از تابع Count استفاده میکنم و Query رو با ExecuteScaler اجرا میکنم.
اینجوری تعداد رکورد های مورد نظرم رو هم میتونم پیدا کنم.
اینم یه نمونه کد:
کد:OleDbConnection ocn = new OleDbConnection(ConnectionString);
OleDbCommand ocm = new OleDbCommand();
ocm.CommandText = "SELECT COUNT(*) FROM table WHERE id=@p1";
ocm.Parameters.Clear();
ocm.Parameters.AddWithValue("@p1", txtId.Text.Trim());
ocm.Connection = ocn;
ocn.Open();
int rowCount = (int)ocm.ExecuteScalar();
ocn.Close();
if (rowCount > 0)
{
MessageBox.Show("رکوردی با این شماره قبلا ثبت شده", "اخطار", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
* یه روش دیگه (که روش جالبی نیست) اینه که نتیجه کوئری رو توی یه DataTable بریزی و بعد بوسیله Rows.Count ، تعداد رکورد هات رو بدست بیاری.