PDA

View Full Version : مشکل با پایگاه داده



ahmad000012
شنبه 03 دی 1390, 22:22 عصر
من در سی شارپ برای گرفتن از پایگاه و نمایش در تکست باکس از کد زیر استفاده می کنم.
SqlConnection objConnection = new SqlConnection("Server=localhost;Database=anbar;integrated security=true;");
SqlCommand objCommand = new SqlCommand();
objCommand.Connection = objConnection;
objConnection.Open();
objCommand.Parameters.AddWithValue("@cid", txtid.Text);
objCommand.CommandText = "select * from employ where emid=@cid";

SqlDataReader red = objCommand.ExecuteReader();
red.Read();

txtname.Text = red["name"].ToString();
txtfamily.Text = red["family"].ToString();
txtsemat.Text = red["semat"].ToString();
txttell.Text = red["tell"].ToString();
txtaddress.Text = red["address"].ToString();


red.Close();



//objCommand.ExecuteNonQuery();
objConnection.Close();


این کد اگه فیلد مورد نظر در پایگاه نباشه خطا میده
می خوام اگه در پایگاه وجود نداشت با یک پیغام بگه در پایگاه داده وجود ندارد

sayvan
شنبه 03 دی 1390, 22:29 عصر
سلام
بعد از خط red.Read();
5 خط بعد رو که مربوط به نمایش اطلاعات هست رو در یه ایف قرار میدی
باید چک کنی آیا فیلد مورد نظر وجود داره یا نه اگه نداشت پیغام بده
red.Read();
if(red.HasRows())
{
txtname.Text = red["name"].ToString();
txtfamily.Text = red["family"].ToString();
txtsemat.Text = red["semat"].ToString();
txttell.Text = red["tell"].ToString();
txtaddress.Text = red["address"].ToString();
}
else
MessageBox.show("no data found");

ahmad000012
شنبه 03 دی 1390, 23:00 عصر
این تابع
HasRows()
املاش چطور است یا باید از using خاصی استفاده کنم خطا میده

ahmad000012
شنبه 03 دی 1390, 23:12 عصر
خودم متوجه شدم شکل صحیح این است.
if (red.HasRows==true)
ممنون از شما دوست عزیز