PDA

View Full Version : مبتدی: نحوه استفاده از datareader در سی شارپ



golnar1992
یک شنبه 08 بهمن 1391, 00:16 صبح
سلام من میخوام داده های یه جدولم رو با استفاده از datareader بدست بیارم بعد با حلقه while مقدارهای جدولم رو با متن textbox م مقایسه کنم
لطفا کمکم کنید خیلی ضروریه و حیاتیه. ممنون

danialafshari
یک شنبه 08 بهمن 1391, 00:29 صبح
سلام دوست عزیز
خوش آمدید به سایت برنامه نویس
راه ساده تری هم برای این کار است ، حالا حتما باید با datareader و while باشه؟ اگه به جای while از کوئری استفاده کنید خیلی بهتره و اصولی.
به هر حال لینک زیر رو نگاه کنید:
لینک (http://itpeach.net/tuts/programming-tuts/c-sharp/c-step-by-stepdata-base-in-c/)

golnar1992
یک شنبه 08 بهمن 1391, 00:34 صبح
ممنون که جوابم و دادید من باید با این دستور بنویسم کد vb رو دارم نمیتونم به سی شارپ تبدیلش کنم ممکنه کمکم کنید؟

golnar1992
یک شنبه 08 بهمن 1391, 00:35 صبح
ممنون که جوابم و دادید من باید با این دستور بنویسم کد vb رو دارم نمیتونم به سی شارپ تبدیلش کنم ممکنه کمکم کنید؟
Dim r As SqlDataReader
con.Open()
cmdUsers.CommandText = "select UserName from T_Users"
r = cmdUsers.ExecuteReader
While r.Read
If r.Item("UserName") = TUserName.Text Then
MsgBox("نام کاربری وارد شده تکراری می باشد")
End If
End While

khokhan
یک شنبه 08 بهمن 1391, 00:35 صبح
مثلا چیزی شبیه این اگه اشتباه نکنم


SQL = "Select * from tblProduct";

//Create Connection/Command/MySQLDataReader
MySqlConnection myConnection = new MySqlConnection(cf.GetConnectionString());
myConnection.Open();
MySqlCommand myCommand = new MySqlCommand(SQL, myConnection);
MySqlDataReader myReader = myCommand.ExecuteReader();
myCommand.Dispose();

if (myReader.HasRows)
{
int i = 0;
// Always call Read before accessing data.
while (myReader.Read())
{
if (myReader["frProductid"].ToString() == "")
{
strInsertSQL = "Insert Into tblProduct_temp (Productid) Values('this istest') ";
MySqlCommand cmdInserttblProductFrance = new MySqlCommand(strInsertSQL, myConnection);
cmdInserttblProductFrance.ExecuteNonQuery(); //<=====THIS LINE THROWS "C# mySQL There is already an open DataReader associated with this Connection which must be closed first."
}
}
}

khokhan
یک شنبه 08 بهمن 1391, 00:38 صبح
SqlDataReader r;
con.Open();
cmdUsers.CommandText = "select UserName from T_Users";
r = cmdUsers.ExecuteReader;
while (r.Read)
{
if (r.Item("UserName") == TUserName.Text)
{
MessageBox.Show("نام کاربری وارد شده تکراری می باشد", " ", MessageBoxButtons.OK, MessageBoxIcon.Error);
flag = 1;

golnar1992
یک شنبه 08 بهمن 1391, 00:45 صبح
if (r.Item("UserName") == TUserName.Text) در سی شارپ r.item نمیاد بجاش کروشه استفاده میشه

golnar1992
یک شنبه 08 بهمن 1391, 00:47 صبح
مثل این ولی من نمیدونم دقیقش چیه
if (r["UserName"] == TUserName.Text)

khokhan
یک شنبه 08 بهمن 1391, 00:48 صبح
if (r.Item("UserName") == TUserName.Text) در سی شارپ r.item نمیاد بجاش کروشه استفاده میشه

شما به بزرگاری خودتون ببخشین :لبخند:

golnar1992
یک شنبه 08 بهمن 1391, 00:57 صبح
الان ازwhile (r.Read()) خطا میگیره باید به رشته تبدیل بشه؟

CsharpNevisi
جمعه 09 خرداد 1393, 12:24 عصر
الان ازwhile (r.Read()) خطا میگیره باید به رشته تبدیل بشه؟

خطا میگیره ؟؟؟؟؟
مطمئنی ؟؟؟؟
متن خطارو بزار ببینیم ... !!!!

danialafshari
جمعه 09 خرداد 1393, 21:40 عصر
خطا میگیره ؟؟؟؟؟
مطمئنی ؟؟؟؟
متن خطارو بزار ببینیم ... !!!!

سلام
تاریخ پست رو هم نگاه کنید