PDA

View Full Version : سوال: ارسال اطلاعات دیتابیس به لیست باکس



reza69
چهارشنبه 11 بهمن 1391, 21:48 عصر
سلام
من میخوام اطلاعات داخل sql رو داخل لیست باکس بریزم به این صورت که نامی که در یک textbox وارد میکنیم داخل جدول sql بگرده و فیلدهایی که با نام برابرن رو وارد list box بریزه.
من با کدی که نوشتم فقط یک رکورد رو میتونم وارد list box بکنم.
این کدم هست.

string constring = "data source=.;initial catalog=anbar;integrated security=true;";
SqlConnection connection = new SqlConnection(constring);
SqlCommand cmd = new SqlCommand();
connection.Open();
cmd = connection.CreateCommand();
try
{
cmd.CommandText = "select namemoshtari from tmoshtari where namemoshtari=@name";
cmd.Parameters.AddWithValue("@name",txtname.Text);
listBox1.Items.Add(cmd.ExecuteScalar().ToString()) ;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
connection.Close();

khokhan
چهارشنبه 11 بهمن 1391, 23:59 عصر
با سلام

لیست باکس با امکان فیلترینگ و جستجو و ریفریش

reza69
پنج شنبه 12 بهمن 1391, 15:12 عصر
مشگلم حل نشد
این پایگاهش access من sql میخوام خواهش میکنم قطعه کد بدید به جای برنامه ممنون.

khokhan
پنج شنبه 12 بهمن 1391, 21:38 عصر
مشگلم حل نشد
این پایگاهش access من sql میخوام خواهش میکنم قطعه کد بدید به جای برنامه ممنون.

این که مشکلی نداره

همون دیتابیس اکسس رو توی sql ایجاد کن با همون جداول ورشته اتصال رو با دیتابس ایجاد شده ست کن

این کد رو هم با کد قبلی عوضش کن


public Form1()
{
InitializeComponent();


}

private void load()
{
try
{
string connString = (@"Data Source=MYSERVER\AGENT_AIDV3;Database=Webstore_US;I ntegrated Security=True");

string sql = @"SELECT name FROM zirna ";

SqlConnection conn = new SqlConnection(connString);
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet dt = new DataSet();
da.Fill(dt, "zirna");
DataTable db = dt.Tables["zirna"];

listBox1.DataSource = db;
listBox1.DisplayMember = "name";
}
catch { MessageBox.Show("سیستم به بانک اطلاعاتی وصل نشده است"); this.Dispose(); }
}

private void Form1_Load(object sender, EventArgs e)
{
load();

}

private void textBox1_TextChanged(object sender, EventArgs e)
{
int index = listBox1.FindString(this.textBox1.Text);
if (0 <= index)
{
listBox1.SelectedIndex = index;
}
}

private void button1_Click(object sender, EventArgs e)
{
string connString = (@"Data Source=MYSERVER\AGENT_AIDV3;Database=Webstore_US;I ntegrated Security=True");

string sql = @"SELECT name FROM zirna where name LIKE '" + textBox2.Text + "%'";

SqlConnection conn = new SqlConnection(connString);
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet dt = new DataSet();
da.Fill(dt, "zirna");
DataTable db = dt.Tables["zirna"];

listBox1.DataSource = db;
listBox1.DisplayMember = "name";
}

private void button2_Click(object sender, EventArgs e)
{
load();
}
}
}

reza69
پنج شنبه 12 بهمن 1391, 22:45 عصر
موقعی که تو textbox اسم ستون جدول رو وارد میکنم لیست همه ی اسم ها رو برام میاره
ببینید میتونید این کد ها رو جوری تغییر بدید که با وارد کردن اسم فقط تمام اسم های شبیه اسم رو داخل listbox بیاره؟

string connString = (@"data source=.;initial catalog=anbar;integrated security=true");
string sql = @"SELECT * FROM tmoshtari where namemoshtari="+ txtname.Text;
SqlConnection conn = new SqlConnection(connString);
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet dt = new DataSet();
da.Fill(dt, "tmoshtari");
DataTable db = dt.Tables["tmoshtari"];
listBox1.DataSource = db;
listBox1.DisplayMember = "namemoshtari";

plus
پنج شنبه 12 بهمن 1391, 22:53 عصر
string sql = string.Format("SELECT * FROM tmoshtari where namemoshtari LIKE '%{0}%'", txtname.Text.Replace("'", String.Empty));

reza69
جمعه 13 بهمن 1391, 10:37 صبح
string sql = string.Format("SELECT * FROM tmoshtari where namemoshtari LIKE '%{0}%'", txtname.Text.Replace("'", String.Empty));

خیلی ممنون ولی وقتی textbox خالی رو جستجو میکنم تمام اسامی رو داخل listbox میاره ولی هرکدوم از اسامی رو وارد میکنم هیچی داخل listbox نمیاره.

plus
جمعه 13 بهمن 1391, 15:38 عصر
خیلی ممنون ولی وقتی textbox خالی رو جستجو میکنم تمام اسامی رو داخل listbox میاره ولی هرکدوم از اسامی رو وارد میکنم هیچی داخل listbox نمیاره.
این یکی رو امتحان کنید:

string sql = string.Format("SELECT * FROM tmoshtari where namemoshtari LIKE N'%{0}%'", txtname.Text.Replace("'", String.Empty));

reza69
جمعه 13 بهمن 1391, 23:09 عصر
مشگل حل شد آقای plus و khokhan خیلی خیلی دوستتون دارم بیش از حد.:قلب::بوس:
حالا زمانش رسیده که در مورد این کد برام توضیح بدید.
string.format چیکار میکنه؟
اون N که قبل از like گذاشتین چی کار میکنه؟
اون عدد0 که داخل دوابرو گذاشتین برای چیه؟
txtname.Text.Replace("'", String.Empty)); برای چیه؟