PDA

View Full Version : مشاهده نتیجه query در textbox



bluedream3964
یک شنبه 02 اسفند 1388, 18:28 عصر
با سلام خدمت دوستان،
من کار با پایگاه داده رو تازه شروع کردم الان به موضوعی علاقمند شدم اونم اینه که نتیجه جسجتوی خود رو در تکست باکس مشاهده کنم!
مثلا پایگاه داده من سه تا فیلد به اسم id,name,tell
داره من می خوام با وارد کردن id دو تکست باکس موجودم مقادیز name,tell را نشون بدن
در ضمن به خدا جستجو کردم اما به نتیجه نرسیدم...
ممنون میشم راهنمائی کنید

saber4166
یک شنبه 02 اسفند 1388, 20:03 عصر
سلام بعد انجام کوری


txtName.text=Ds.Tables["NameTable"].Rows[0]["NameFildNameInDatabase"].ToString();
txtTell.text=Ds.Tables["NameTable"].Rows[0]["NameFildTellInDatabase"].ToString();

bluedream3964
یک شنبه 02 اسفند 1388, 23:22 عصر
سلام بعد انجام کوری


txtName.text=Ds.Tables["NameTable"].Rows[0]["NameFildNameInDatabase"].ToString();
txtTell.text=Ds.Tables["NameTable"].Rows[0]["NameFildTellInDatabase"].ToString();


با سلام من ابن روش رو تست کردم اما این خطا رو گرفتم:
Object reference not set to an instance of an object.
میشه بگین یعنی چی؟

bluedream3964
یک شنبه 02 اسفند 1388, 23:55 عصر
با سلام من ابن روش رو تست کردم اما این خطا رو گرفتم:
Object reference not set to an instance of an object.
میشه بگین یعنی چی؟

راستی اون مشکل رو حل کردم الان این ارور رو میده

There is no row at position 0

saber4166
دوشنبه 03 اسفند 1388, 11:58 صبح
راستی اون مشکل رو حل کردم الان این ارور رو میده

There is no row at position 0


سلام خوب این مشکل نیست میگه هیچ رکوردی با این اطلاعات شما وجود نداره
برای جلوگیری از این error و درست اجرا شدن


if(Ds.Tables["NameTable"].Rows.Count !=0)
{
txtName.text=Ds.Table["NameTable".Rows[0]["NameCell"].value.toString();
.........
........
else
{
MessageBoxs("هیچ شخصی با این شماره وجود ندارد");
}
}

saber4166
دوشنبه 03 اسفند 1388, 12:05 عصر
البته Rows[0] به این خاطره که شما از این شماره فقط یک رکورد در database دارید اگر بیشتر بود میتونید از یه for استفاده کنید


if(Ds.Tables["NameTable"].Rows.Count !=0)
{
for(int i=0; i<=Ds.Tables["NameTlb"].Rows.Count;++i)
{
txtName.text=Ds.Table["NameTable".Rows[i]["NameCell"].value.toString();
.........
........
}
else
{
MessageBoxs("هیچ شخصی با این شماره وجود ندارد");
}

دقت هم داشته باش که چون از For استفاده میکنی خیلی سریع اجرا مشه که اگر مثلا 5 مورد وجود داشت نمیتونید 4 تای قبلی رو ببینید پس بهتر در این حالت از یه dataGriView استفاده کنید
یا چند تا دکمه بزاری که به ازای هر کلیک به سمت جلو یا عقب شخص جدید یا شخص قبلی رو نمایش بده
موفق و پیروز باشید

Warrior
دوشنبه 03 اسفند 1388, 15:28 عصر
ببخشید دوستان, من هم خواستم کار بالا را انجام دهم ولی به نتیجه نرسیدم...

اصلا این Ds چیست؟!

کد های من اینطوری هستند:

داخل یک کلاس به نام SSearch دستورات زیر را در متد SearchID نوشته ام:


public DataTable SearchID(int Num)
{
SQL = "Select * From TB1 Where ID ={0}";
SQL = string.Format(SQL,Num);
dal.Connect();
DataTable DT = dal.Select(SQL);
dal.disConnect();
return DT;
}

در واقع دارم از معماری سه لایه استفاده می کنم.

در برنامه هم این کد ها را نوشته ام:



SSearch search = new SSearch();
DataTable DT = new DataTable();
DT = search.SearchID(int.Parse(textBox1.Text));
textBox2.Text = DT.Rows[0]["Name"].ToString();
textBox3.Text = DT.Rows[0]["LName"].ToString();

ولی ارور می دهد.

چرا؟