PDA

View Full Version : سوال: ارتباط با پایگاه داده



sibon software
یک شنبه 23 تیر 1392, 13:16 عصر
سلام دوستان یه برنامه نوشتم که اطلاعات از کاربر میگیره و توی Accessثبت می کنه. می خوام برای جستجو از DataGridView و TextBox استفاده کنم. یعنی با تایپ توی TextBox نتایج بصورت لحظه ای توی DataGridView نشون بده. :افسرده: کسی میتونه کدشو برام بزاره؟

kazem235
یک شنبه 23 تیر 1392, 13:34 عصر
سلام دوستان یه برنامه نوشتم که اطلاعات از کاربر میگیره و توی Accessثبت می کنه. می خوام برای جستجو از DataGridView و TextBox استفاده کنم. یعنی با تایپ توی TextBox نتایج بصورت لحظه ای توی DataGridView نشون بده. :افسرده: کسی میتونه کدشو برام بزاره؟

از کوئری استفاده کن.
اما برای جستجوی لحظه ای از text change استفاده کنی فکر کنم بهتر باشه.

Y_Safaiee
یک شنبه 23 تیر 1392, 14:00 عصر
با سلام خدمت شما دوست عزیز

سبک برنامه نویسی شما چطوریست؟از ویزارد استفاده میکنید؟از لینکو؟کد نویسی؟ یا ...

اگه از لینکو استفاده میکنین :


var q = (from p in db.Users select p).Where(p => p.Name.Contains(textBox1.Text));
dataGridView1.DataSource = q;


اگه از حالت ویزارد و با استفاده از BindingSource استفاده میکنین :


UsersBindingSource.Filter = "Name like '" + textBox1.Text + "%'";


و اگه با کد نویسی و دیتاتیبل و دیتاست استفاده میکنین


SqlConnection cnn=new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database1.mdf;Integrated Security=True;User Instance=True");
SqlDataAdapter da;
DataTable dt;
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
dt=new System.Data.DataTable();
da = new SqlDataAdapter("select * from Users", cnn);
da.Fill(dt);
table1DataGridView.DataSource = dt;

}

private void textBox1_TextChanged(object sender, EventArgs e)
{
dt.DefaultView.RowFilter = "Name like '" + textBox1.Text + "%'";
}



و دیتا ست :


SqlConnection cnn=new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database1.mdf;Integrated Security=True;User Instance=True");
SqlDataAdapter da;
DataSet ds;
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
ds = new System.Data.DataSet();
da = new SqlDataAdapter("select * from Users", cnn);
da.Fill(ds);
table1DataGridView.DataSource = ds.Tables[0];
}

private void textBox1_TextChanged(object sender, EventArgs e)
{
ds.Tables[0].DefaultView.RowFilter = "Name like '" + textBox1.Text + "%'";
}


موفق باشین
بایت بایت

sibon software
یک شنبه 23 تیر 1392, 14:18 عصر
دوست عزیز از BindingSource استفاده می کنم جواب هم میده ولی مشکل اینجاست که بعد از اینکه اطلاعات جدید به پایگاه داده اظافه می شه پایگاه داده بروز نمیشه و همون اطلاعات قبلیو نشون میده.:متفکر: داستان چیه ؟؟؟

Y_Safaiee
یک شنبه 23 تیر 1392, 14:25 عصر
دوست عزیز از BindingSource استفاده می کنم جواب هم میده ولی مشکل اینجاست که بعد از اینکه اطلاعات جدید به پایگاه داده اظافه می شه پایگاه داده بروز نمیشه و همون اطلاعات قبلیو نشون میده.:متفکر: داستان چیه ؟؟؟

آیا کد بروز شدن و دوباره ریخته شدن اطلاعات داخل دیتاست رو صدا میزنید؟

منظورم این کده:


da = new SqlDataAdapter("select * from Users", cnn);
da.Fill(ds);
table1DataGridView.DataSource = ds.Tables[0];


وقتی شما عملی روی اطلاعات انجام میدین(حذف,ویرایش,اضافه کردن و ..) باید دوباره اطلاعات رو از پایگاه داده توسط دیتا آداپتر بکشید و داخل دیتاست/دیتاتیبل خودتون بریزید تا اطلاعات بروز شوند.

sibon software
یک شنبه 23 تیر 1392, 15:28 عصر
دوست خوبم این کدو به زبون VB هم میشه نوشت؟ چطوریاست؟

Y_Safaiee
یک شنبه 23 تیر 1392, 16:30 عصر
دوست خوبم این کدو به زبون VB هم میشه نوشت؟ چطوریاست؟

آره میشه نوشت فقط باید سینتکس های سی شارپو به وی بی تغییر بدی,متاسفانه وی بی.نت نصب ندارم من رو سیسم

موفق باشی
بایت بایت