PDA

View Full Version : سوال: نمایش یک رکورد موجود در بانک در textBox



raminsalemi
جمعه 14 تیر 1387, 22:47 عصر
سلام:من در سی شارپ یک برنامه نوشتم تحت بانک sqlserver2000 که یک فرم ورود اطلاعات برای ثبت مشخصات فاکتور مشتریان داره من دو تا textBoxدارم که یکی از اونها کد نمایندگی و دومی نام نمایندگی رو دریافت میکنه من قصد دارم وقتی کاربر کد نمایندگی رو در textBox اول وارد میکنه به طور خودکار نام نمایندگی در textBoxدوم نمایش داده بشه تا وارد کردن اطلاعات توسط کاربر برای مشتریانی که تعداد فاکتور های زیادی برای اونها صادر میشه با سرعت بالاتری انجام بگیره اگر امکان داره کد مورد نیاز برای این کاررو برام بذارید .
باتشکر و سپاس فراوان

yasercomeng
شنبه 15 تیر 1387, 00:03 صبح
براي اين كار ابتدا يه DataGridView رو صفحه بنداز و مقدار visible اونو false كن و جدولي كه ميخواي اطلاعاتو از اون دريافت كني رو به اون bind كن سپس كد زير رو تويه TextChanged Event مربوط به كد نمايندگي بنويس فيلد CompanyName همان فيلد كد نمايندگي ميباشد.اگر كد پيدا شد مقدار نام نمايندگي از جدول استخراج شده و در TextBox مربوط به نام نمايندگي قرار ميگيرد.من فرض كردم كه نام نمايندگي در ستون دوم جدول قرار دارد(شماره ي ستونها در DataGridView از صفر شروع ميشوند)

DataView View = new DataView(YourDataSet.YourDataTable);
View.Sort="CompanyCode";
int flag=View.Find(Name.Text);
if(flag!=-1)
CompanyNameTextBox.Text=YourDataGridView[flag].Cell[1].Value.ToString();


به جاي اين كار يه كد ديگه هم ميتوني بنويسي و اونم اينه كه از كلاس sqlcommand استفاده كني و query مربوط به پيدا كردن سطر مربوطه رو بنويسي و با استفاده از اون به كارت ادامه بدي:

SqlCommand Command=new SqlCommand(“select CompanyName from YourTable where CompanyCode=”+CompanyCodeTextBox.Text);
SqlReader Reader=Command.ExecuteReader();
If(Reader.Read())
CompanyNameTextBox.Text=Reader.GetString(“Compan yName”);


سؤال بي پاسخ من: http://barnamenevis.org/forum/showthread.php?t=110427

raminsalemi
سه شنبه 18 تیر 1387, 00:38 صبح
با تشکر از شما دوست عزیز کد دومی که با sqlcommand برام گذاشتی رو باید در کجا تایپ کنم.لطفا اگر امکان داره درباره کد اول توضیح کاملتری برام بذارید.
با تشکر

مهدی رحیم زاده
سه شنبه 18 تیر 1387, 06:42 صبح
سلام
ببینید اول از همه شما باید داده ها رو با توجه به ورودی TextBox اول Select کنید :

"Select N_id,N_name from table_name where N_id = "+TextBox1.text;
شما باید نتیجه این Select رو توی یک DataTableذخیره کنید . بعد میتونید با این کد داده ها رو نمایش بدین :


TextBox2.text=dt.rows[0]["N_name"].ToString();
dt همون دیتاتیبل شماست . اینا رو توی Key_Down و بعد از زدن کلید Enter بزارید . حتما جواب میگیرید.
موفق باشید .

jeus
سه شنبه 18 تیر 1387, 09:45 صبح
راه راحتتر جستجو کردن توی dataView و یا dataSet جستجو را انجام بدی فکر میکنم که سریعتر باشه البته بستگی به میزان سطرهاتم داره که چقدر اطلات را لود کنی از دیتابیس شما برای کد ها هم برای event صفحه کلید قبل از جستجو کردن تا max-1 میزان کد نمایندگی کنترل بگذار یعنی اگر میدونی که کد نماینده ها 4 رقمی برای رویداد changeText یک if بگذار تا زمانی که کمتر از 4 تا است جستجو نکنه یا راه بهترش هنگامی که tab رو میزنه و focus از روی textbox مورد نظر میره و اون موقع جستجو را انجام بده
پیروز باشی

raminsalemi
سه شنبه 18 تیر 1387, 11:26 صبح
سلام دوست عزیز به خاطر کدی که برام گذاشتین ممنونم ولی این کد در قسمت
Rows[0]یک مشکل داره چون هر کدی رو که در textBoxاول وارد میشه محتویات سطری رو نشون میده که در کد شماره اندیس اونو نوشته باشی و به صورت پویا عمل نمی کنه که متناسب با هر کد نام نمایندگی مربوطه در textBoxدوم نمایش داده بشه اگر امکان داره منو راهنمایی کنید

jeus
سه شنبه 18 تیر 1387, 12:32 عصر
عزیز دل برادر شما باید توی تیبلت جستجو انجام بدی و مهم از همه اینکه کدی که جستجو را انجام میدی یا باید کلید باشد یا اینکه بتوانی جستجوی ترکیبی انجام بدی حالا این جستجو میتونه توی دیتابیس باشه توی dataset باشه توی dataView ، DataTable یا هر جای دیگه باشه خوش بگذره