PDA

View Full Version : جستجو در جدول با sql و c#



sh.saeedi
شنبه 04 بهمن 1393, 10:34 صبح
در یک فرم چندتا Textbox داریم ، میخواهم وقتی اطلاعاتی در یک Textboxوارد شد بقیه آنها با مقادیر مربوطه از جدولی که داریم اتوماتیک اضافه شوند.اگر کسی نحوه کار رو شرح بده ممنون میشم

mrprestige
شنبه 04 بهمن 1393, 11:14 صبح
سلام ، دوست گرامی شما میتونین از روش Binding استفاده کنید به این روش که تو خاصیت Text Changed یکی از text box هاتون (مثلا text box 1 ) این کد رو بنویسید .



int i=0;
sqldataAdapter da=new sqldataAdapter("select * from نام جدول where فیلد جدول Like ' %"+text box 1.text+ "% ' ", نام متغییر کانکش استرینگ);
dataset ds=new Dataset();
da.fill(ds,"اسم جدول");
textbox2.text =ds.table[0].Rows[i]["اسم فیلد مورد نظر"].to string();
.
.
.
.





قبل از همه اینا یادت باشه کانکشنتون رو از قبل تعریف کرده باشید تو کلاس فرم و بعد منظورم از " فیلد جدول " همون فیلدی هست که شما میخوای جستجو رو براساس اون انجام بدید (مثلا شماره دانشجویی برای پیدا کردن یه دانشجوی خاص ) و در آخر دونه دونه " اسم فیلد " مورد نظرتون به text box هایی که میخوایی اطلاعات مربوطه نمایش بده رو مشخص میکنی و به عنوان مثال برای textbox2 مثال زدم برات بقیه اش حالا به نسبت فیلد هایی که میخوایی نمایش داده بشن میتونی زیاد کنی .

امیدوارم تونسته باشم کمکی کرده باشم . با آرزوی موفقیت .

sh.saeedi
شنبه 04 بهمن 1393, 12:03 عصر
سلام ، دوست گرامی شما میتونین از روش Binding استفاده کنید به این روش که تو خاصیت Text Changed یکی از text box هاتون (مثلا text box 1 ) این کد رو بنویسید .



int i=0;
sqldataAdapter da=new sqldataAdapter("select * from نام جدول where فیلد جدول Like ' %"+text box 1.text+ "% ' ", نام متغییر کانکش استرینگ);
dataset ds=new Dataset();
da.fill(ds,"اسم جدول");
textbox2.text =ds.table[0].Rows[i]["اسم فیلد مورد نظر"].to string();
.
.
.
.





قبل از همه اینا یادت باشه کانکشنتون رو از قبل تعریف کرده باشید تو کلاس فرم و بعد منظورم از " فیلد جدول " همون فیلدی هست که شما میخوای جستجو رو براساس اون انجام بدید (مثلا شماره دانشجویی برای پیدا کردن یه دانشجوی خاص ) و در آخر دونه دونه " اسم فیلد " مورد نظرتون به text box هایی که میخوایی اطلاعات مربوطه نمایش بده رو مشخص میکنی و به عنوان مثال برای textbox2 مثال زدم برات بقیه اش حالا به نسبت فیلد هایی که میخوایی نمایش داده بشن میتونی زیاد کنی .

امیدوارم تونسته باشم کمکی کرده باشم . با آرزوی موفقیت .

من توی form_load این کد رو نوشتم ولی تو قسمت Textchange ، کانکشنی رو که ساخنم نمیاره (cn)، کدم مشکلی داره؟
(من مبتدی هستم)





SqlConnection cn = new SqlConnection();


cn.ConnectionString = "Data Source=.;Initial Catalog=TestVB;Integrated Security=True; user id=it-1;password=123456";
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandType = CommandType.Text;
try{
cn.Open();
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);


}

mrprestige
یک شنبه 05 بهمن 1393, 18:41 عصر
معلومه خطا میگیره دوست من چون شما دستور sqlcommand تون رو مشخص نکردید . شما این کدی رو که برات مینویسم رو بنویس .

Dataset ds=new Dataset();
sqlconnection cn= new sqlconnection( " متن کانکشن استرینگ " );
cn.open();
SqlDataAdapter da=new SqlDataAdapter( " Select * From نام جدول " , cn);
da.fill(ds);
dataGridview1.Datasource= ds;
dataGridview1.DataMember = " نام جدول " ;
cn.close();

همین رو توی فرم بنویس مشکل ان شاا... حلّه .