PDA

View Full Version : سوال: اتصال Database به textbox با روش linq



ms-ninja
جمعه 23 بهمن 1394, 17:04 عصر
با سلام

من یک جدول دارم به نام db_st که فقط یک سطر دارد

می خواهم بدون استفاده از دیتاگرید این سطر فراخوانی و ویرایش شود

من از روش linq با کد زیر تست کرم نشد



db_st st=new db_st();

t1.test=st.e_server.Tostring();



دقیق نمی دانم باید از کدام متد استفاده کنم

لطفا راهنمایی نمایید

با تشکر

alexmcse
جمعه 23 بهمن 1394, 18:22 عصر
DataClasses1DataContext context = new DataClasses1DataContext(); var quary = from q in context.mashins select q;
this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", quary , "name", true));
// mashins جدول
// name فیلد جدول ماشین
// پراپرتی کنترل تکست باکس
//Text

ms-ninja
شنبه 24 بهمن 1394, 03:41 صبح
این خط اررور
DataClasses1DataContext context = new DataClasses1DataContext();

باید using تعریف شود؟

alexmcse
شنبه 24 بهمن 1394, 05:58 صبح
این خط اررور
DataClasses1DataContext context = newDataClasses1DataContext();

باید using تعریف شود؟

عکس های زیر را ببینید

ms-ninja
شنبه 24 بهمن 1394, 07:29 صبح
تشکر . لینک مرجع ای دارید که من آموزش linq در سی شارپ یاد بگیرم . ترجیحا فارسی

ms-ninja
شنبه 24 بهمن 1394, 09:17 صبح
برای ذخیره کردن ویرایش چگونه است؟

مانند entity خاصیت savechange ندارد

alexmcse
شنبه 24 بهمن 1394, 11:57 صبح
تشکر . لینک مرجع ای دارید که من آموزش linq در سی شارپ یاد بگیرم . ترجیحا فارسی


دانلود کنید
کتاب جامع لینکیو استاد اقدم

http://s6.picofile.com/file/8238670118/amoozesh_linq.pdf.html

,
http://s5.picofile.com/file/8114827826/Linq.rar.html

:تشویق::تشویق:

alexmcse
شنبه 24 بهمن 1394, 12:05 عصر
برای ذخیره کردن ویرایش چگونه است؟

مانند entity خاصیت savechange ندارد

بجای آن
SubmitChanges
دارد

ms-ninja
شنبه 24 بهمن 1394, 12:05 عصر
تشکر
از بابت آموزش هم سپاس گذارم

ms-ninja
دوشنبه 26 بهمن 1394, 11:32 صبح
جناب با SubmitChanges هم ذخیره نکرد


DataClasses1DataContext context = new DataClasses1DataContext();
db_st st = context.db_sts.First(c => c.ID == 1);
st.s_user=suser.Text;
st.s_pass = spass.Text;
st.s_number = snumber.Text;
st.e_user = euser.Text;
st.e_pass = epass.Text;
st.e_server = eserver.Text;
st.e_port = eport.Text;
st.e_name=ename.Text;
context.SubmitChanges();
MessageBox.Show("ok");

alexmcse
جمعه 30 بهمن 1394, 14:03 عصر
جناب با SubmitChanges هم ذخیره نکرد


DataClasses1DataContext context = new DataClasses1DataContext();
db_st st = context.db_sts.First(c => c.ID == 1);
st.s_user=suser.Text;
st.s_pass = spass.Text;
st.s_number = snumber.Text;
st.e_user = euser.Text;
st.e_pass = epass.Text;
st.e_server = eserver.Text;
st.e_port = eport.Text;
st.e_name=ename.Text;
context.SubmitChanges();
MessageBox.Show("ok");





چه اروری میدهد؟

ms-ninja
جمعه 30 بهمن 1394, 15:56 عصر
اررور نمی دهد و تغییرات ذخیره نمی شود



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.Common;
using Telerik.WinControls.UI;


namespace Matab
{
public partial class settingapp : Telerik.WinControls.UI.RadForm
{
public settingapp()
{
InitializeComponent();
}
dbmt dbm = new dbmt();

private void settingapp_Load(object sender, EventArgs e)
{
DataClasses1DataContext context = new DataClasses1DataContext();
var quary = from q in context.db_sts select q;
this.suser.DataBindings.Add(new System.Windows.Forms.Binding("Text", quary, "s_user", true));
this.spass.DataBindings.Add(new System.Windows.Forms.Binding("Text", quary, "s_pass", true));
this.snumber.DataBindings.Add(new System.Windows.Forms.Binding("Text", quary, "s_number", true));
this.euser.DataBindings.Add(new System.Windows.Forms.Binding("Text", quary, "e_user", true));
this.epass.DataBindings.Add(new System.Windows.Forms.Binding("Text", quary, "e_pass", true));
this.eserver.DataBindings.Add(new System.Windows.Forms.Binding("Text", quary, "e_server", true));
this.ename.DataBindings.Add(new System.Windows.Forms.Binding("Text", quary, "e_name", true));
this.eport.DataBindings.Add(new System.Windows.Forms.Binding("Text", quary, "e_port", true));










}


private void radButton1_Click(object sender, EventArgs e)
{
DataClasses1DataContext context = new DataClasses1DataContext();
db_st st = new db_st();
st.s_user=suser.Text;
st.s_pass = spass.Text;
st.s_number = snumber.Text;
st.e_user = euser.Text;
st.e_pass = epass.Text;
st.e_server = eserver.Text;
st.e_port = eport.Text;
st.e_name=ename.Text;
context.db_sts.InsertOnSubmit(st);
context.SubmitChanges();
MessageBox.Show("ok");




}
}
}

alexmcse
شنبه 01 اسفند 1394, 07:39 صبح
نام جدول Table_1s است باید با نام جدول شما تغییر کند

context = new DataClasses1DataContext(); var quary = from q in context.Table_1s
where q.id == 1
select q;
foreach (var VARIABLE in quary )
{
VARIABLE.Name = myTextBox1.Text;
VARIABLE.lastName = myTextBox2.Text;
}
context.SubmitChanges();

ms-ninja
شنبه 01 اسفند 1394, 08:09 صبح
در ادامه همین مطلب

اگر بخوام کد فراخوانی در یک button قرار بدم که با هر بار کلیک تغییرات را نمایش بده باید تو حلقه قرار داد


DataClasses1DataContext context = new DataClasses1DataContext();
var quary = from q in context.db_sts select q;
this.suser.DataBindings.Add(new System.Windows.Forms.Binding("Text", quary, "s_user", true));

alexmcse
شنبه 01 اسفند 1394, 13:35 عصر
خیر - کد شما درست است (همین جور که در کد بالا نوشته اید )

ms-ninja
یک شنبه 02 اسفند 1394, 04:26 صبح
یک مشکلی است

وقتی یک بار رو button کلیک می کنم اطلاعات رو نمایش میده

ولی برای بار دوم که روش کلیک می کنم که اگه اطلاعات تغییر کرده باشه دوباره ریلود بشه اررور میده

این خط رو گیر میده


this.suser.DataBindings.Add(newSystem.Windows.Form s.Binding("Text", quary, "s_user", true));


متن اررور هم




This causes two bindings in the collection to bind to the same property.

alexmcse
یک شنبه 02 اسفند 1394, 14:11 عصر
این ارور طبیعی است
جرا که شما یک مرتبه بایند میکنید سپس دکمه را فشار میدهید کامپایلر میخواهد یک مرتبه دیگر این کار را انجام دهد بخاطر همین ارور میدهد

alexmcse
یک شنبه 02 اسفند 1394, 14:37 عصر
بنویس

private void Form1_Load(object sender, EventArgs e) {
var quary = from q in context.Table_1s select q;


//بایندکردن تکست باکس
this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", quary, "Name", true));


}


private void button1_Click(object sender, EventArgs e)
{
var quary = from q in context.Table_1s
where q.id==1
select q;
//آپدیت جدول
foreach (var VARIABLE in quary )
{
VARIABLE.Name = "ali";
}
context.SubmitChanges();


//تازه سازی برای نمایش مقدار آپدیت شده
context.Refresh( RefreshMode.KeepChanges );
}