PDA

View Full Version : نیاز به کمک در زمینه ارتباط c# با sql



hosein_ras
شنبه 03 دی 1390, 13:11 عصر
با سلام
دوستان لطفا کمک کنند.خیلی گیرم
می خوام داخل Vc#2010 محتویات یک textbox رو تو اطلاعات یک بانک sql که توسط linq به برنامه مرتبط شده سرچ کنم و سپس اطلاعات فیلدش رو تو تکست باکس های دیگه باز خوانی کنم

مثلا:می خوام اسم رو تو تکست باکس تایپ کنم و تو فیلد name بانک اطلاعات جستجو بشه اگه همچین فیلدی رو پیدا کرد lastname رو تو یه تکست باکس دیگه نشون بده
کدش به چه صورت میشه؟
ممنون میشم کمکم کنید...:قلب:

sayvan
شنبه 03 دی 1390, 13:54 عصر
تو رویداد textchange تکس باکس کد ای زیر رو بنویس البته با اطلاعات جداول و ستونهای بانک خودت
da دیتا آداپتر

SqlDataReader sr;
da.SelectCommand.CommandText = "select namebook,lastname from Tablename where name='" + Textbox1.Text + "'";
sr = da.SelectCommand.ExecuteReader();
sr.Read();
if (sr.HasRows)
{
TextBox2.text = sr["lastname"].ToString();
}

mandanim
شنبه 03 دی 1390, 17:27 عصر
سلام
روش دیگه ای هم وجود داره که کمی خطهاش کمتره

SqlCommand com = new SqlCommand("select lastname from Tablename where name='" + Textbox1.Text + "'",SqlConnection_String);
SqlConnection_String.Open();
textBox2.Text=com.ExecuteScalar().ToString();
SqlConnection_String.Close();

hosein_ras
شنبه 03 دی 1390, 22:41 عصر
سلام
روش دیگه ای هم وجود داره که کمی خطهاش کمتره

SqlCommand com = new SqlCommand("select lastname from Tablename where name='" + Textbox1.Text + "'",SqlConnection_String);
SqlConnection_String.Open();
textBox2.Text=com.ExecuteScalar().ToString();
SqlConnection_String.Close();

SqlConnection_String.Open() چه جوری تعریف شده؟
میشه تعریف کانکشن رو هم بنویسید؟
ممنون

mahan77
شنبه 03 دی 1390, 23:04 عصر
با سلام
دوستان لطفا کمک کنند.خیلی گیرم
می خوام داخل Vc#2010 محتویات یک textbox رو تو اطلاعات یک بانک sql که توسط linq به برنامه مرتبط شده سرچ کنم و سپس اطلاعات فیلدش رو تو تکست باکس های دیگه باز خوانی کنم

مثلا:می خوام اسم رو تو تکست باکس تایپ کنم و تو فیلد name بانک اطلاعات جستجو بشه اگه همچین فیلدی رو پیدا کرد lastname رو تو یه تکست باکس دیگه نشون بده
کدش به چه صورت میشه؟
ممنون میشم کمکم کنید...:قلب:
باسلام
ابتدا باید یک متغییر از نوع لینک تعریف کرد. مثلاً:
var db=newDataClasses1DataContext();
سپس اگر نام جدول personal باشد خواهیم داشت:
txLastNeme.Text=db.Personals.Select(c=>c.lastname).Where(c=>c.FirstName==txFirstName.Text).tostring();

zarrinnegar
شنبه 03 دی 1390, 23:15 عصر
این طوری هم میشه

var lq = new DataClasses1DataContext();
var dt=lq.Personals.where(c=>c.name == textbox1.text).Count();
if(dt>0)
{
var dt1=lq.Personals.where(c=>c.name == textbox1.text).First();
textbox2.text=dt2.family;
textbox3.text=dt2.code.tostring();
.
.
.
}

hosein_ras
شنبه 03 دی 1390, 23:27 عصر
باسلام
ابتدا باید یک متغییر از نوع لینک تعریف کرد. مثلاً:
var db=newDataClasses1DataContext();
سپس اگر نام جدول personal باشد خواهیم داشت:
txLastNeme.Text=db.Personals.Select(c=>c.lastname).Where(c=>c.FirstName==txFirstName.Text).tostring();


var db = newDataClasses1DataContext();
txtfamily.Text = db.students.Select(c => c.family).Where(c => c.name == txtnn.Text).tostring();

من اطلاعات بانک خود رو قرار دادم اما این ارور را داد:
Error 1 'string' does not contain a definition for 'name' and no extension method 'name' accepting a first argument of type 'string' could be found (are you missing a using directive or an assembly reference?) C:\Users\hosein\Documents\Visual Studio 2010\Projects\WindowsFormsApplication6\WindowsForm sApplication6\Frmstudent.cs 64 77

hosein_ras
شنبه 03 دی 1390, 23:43 عصر
ممنون میشم دوستان راهنمایی کنند

mahan77
شنبه 03 دی 1390, 23:43 عصر
اگر ممکن است برنامتو آپلود کن

zarrinnegar
یک شنبه 04 دی 1390, 07:25 صبح
این خطا مربوط به اینه که شما فیلدها رو به فامیلی محدود کردی بعد نام رو چک کردی میگه فیلد نام رو پیدا نمیکنم
قسمت اول و بردار و فقط where رو بزار
بعدش هم آخرش باید یا از single استفاده کنی و یا از first تا بتونی محتوای یک فیلد رو بیرون بکشی و در آخر مستقیمآ توی textbox نریز چون ممکنه رکوردی رو پیدا نکنه باز هم خطا میده
همون راهی رو که بالا گفتم انجام بده

hosein_ras
یک شنبه 04 دی 1390, 11:18 صبح
ممنون مشکل حل شد
یه سوال
امکان این نیست که اطلاعاتی رو که تو محیط کدنویسی به بانکمون میدیم ،تو بانک ذخیره شه؟
یعنی پس از اجرای برنامه به فیلدها مقدار دهیم و پس از بستن برنامه هم این اطلاعات تو بانک باشه؟

hosein_ras
یک شنبه 04 دی 1390, 20:20 عصر
ممنون میشم دوستان راهنمایی کنند

zarrinnegar
یک شنبه 04 دی 1390, 20:36 عصر
امکانش هست
الان که نمیتونی اطلاعات رو توی Debug ذخیره کنی اینه که بانک اطلاعاتت رو توی همین ویژوال ساختی باید فایل بانک اطلاعاتت رو به sql خودت Attach کنی تا مدیریتش بیافته گردن sql الان چون خود ویژوال داره مدیریت میکنه فقط حالت نمایشی داره مگر اینکه exe برنامه رو اجرا کنی

hosein_ras
دوشنبه 05 دی 1390, 22:41 عصر
ممنون بابت دوستان که به من لطف دارند
یه سوال هم در زمینه insert در linqدارم
من با استفاده از این کد insert می کنم اما محتویات همه فیلد ها هم تغییر کرده و به مقدار جدید باز می گردد
مثلا row دوم را که اضافه می کنم اطلاعات row اول نیز مانند دومی می شود مثلا همه name ها "علی" می شود
به نظر شما مشکل از کد منه؟
var db = new DataClasses1DataContext();
student student = new student();
student.name = txtname.Text;
student.family = txtfamily.Text;
student.father = txtfather.Text;
student.codemeli = txtmeli.Text;
student.tel = txttel.Text;
student.mobilefa = txtmobf.Text;
student.mobilest = txtmobs.Text;
student.mail = txtmail.Text;
student.birthplace = txtbirthplace.Text;
student.bithdate = txtbirthdate.Text;
student.pic = path;
student.address = txtaddress.Text;
student.bithdate = txtbirthdate.Text;
student.address = txtaddress.Text;
student.rel = comboBox1.Text; student.lastscore = txtlastscore.Text;
student.vorod = txtvorod.Text;
student.enzebat = txttel.Text;
student.lastschool = txtlastschool.Text;
db.students.InsertOnSubmit(student);
db.SubmitChanges();


 


var db = newDataClasses1DataContext();
student student = newstudent();
student.name = txtname.Text;
student.family = txtfamily.Text;
student.father = txtfather.Text;
student.codemeli = txtmeli.Text;
student.tel = txttel.Text;
student.mobilefa = txtmobf.Text;
student.mobilest = txtmobs.Text;
student.mail = txtmail.Text;
student.birthplace = txtbirthplace.Text;
student.bithdate = txtbirthdate.Text;
student.pic = path;
student.address = txtaddress.Text;
student.bithdate = txtbirthdate.Text;
student.address = txtaddress.Text;
student.rel = comboBox1.Text; //in object mitavanad combobox ham dashte bashad
student.lastscore = txtlastscore.Text;
student.vorod = txtvorod.Text;
student.enzebat = txttel.Text;
student.lastschool = txtlastschool.Text;
//pas az natijegiri baraye tadvine shomareye meli eslah shavad
//student.studentcode = txtfamily.Text;

db.students.InsertOnSubmit(student);
db.SubmitChanges();


 

یا اینکه ساختار دیتابیسم مشکل داره؟

hosein_ras
سه شنبه 06 دی 1390, 09:47 صبح
دوستان کسی راهنمایی نمی کنه؟
:ناراحت:

uniqueboy_ara
سه شنبه 06 دی 1390, 14:15 عصر
اینو تست کن ببین بازم مشکل داره؟!
using(var db = newDataClasses1DataContext())
{
student student = new student();
student.name = txtname.Text;
student.family = txtfamily.Text;
student.father = txtfather.Text;
student.codemeli = txtmeli.Text;
student.tel = txttel.Text;
student.mobilefa = txtmobf.Text;
student.mobilest = txtmobs.Text;
student.mail = txtmail.Text;
student.birthplace = txtbirthplace.Text;
student.bithdate = txtbirthdate.Text;
student.pic = path;
student.address = txtaddress.Text;
student.bithdate = txtbirthdate.Text;
student.address = txtaddress.Text;
student.rel = comboBox1.Text; //in object mitavanad combobox ham dashte bashad
student.lastscore = txtlastscore.Text;
student.vorod = txtvorod.Text;
student.enzebat = txttel.Text;
student.lastschool = txtlastschool.Text;
//pas az natijegiri baraye tadvine shomareye meli eslah shavad
//student.studentcode = txtfamily.Text;

db.AddTostudent(student);
db.SaveChanges();
}

hosein_ras
سه شنبه 06 دی 1390, 18:09 عصر
اینو تست کن ببین بازم مشکل داره؟!
using(var db = newDataClasses1DataContext())
{
student student = new student();
student.name = txtname.Text;
student.family = txtfamily.Text;
student.father = txtfather.Text;
student.codemeli = txtmeli.Text;
student.tel = txttel.Text;
student.mobilefa = txtmobf.Text;
student.mobilest = txtmobs.Text;
student.mail = txtmail.Text;
student.birthplace = txtbirthplace.Text;
student.bithdate = txtbirthdate.Text;
student.pic = path;
student.address = txtaddress.Text;
student.bithdate = txtbirthdate.Text;
student.address = txtaddress.Text;
student.rel = comboBox1.Text; //in object mitavanad combobox ham dashte bashad
student.lastscore = txtlastscore.Text;
student.vorod = txtvorod.Text;
student.enzebat = txttel.Text;
student.lastschool = txtlastschool.Text;
//pas az natijegiri baraye tadvine shomareye meli eslah shavad
//student.studentcode = txtfamily.Text;

db.AddTostudent(student);
db.SaveChanges();
}

مشکل حل نشد
دیتابیس باید ساختار خاصی داشته باشه؟