PDA

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



ELI994
چهارشنبه 21 اسفند 1392, 11:00 صبح
با سلام و عرض خسته نباشید خدمت دوستان
من یه جدول رو از اکسس به اکسل تبدیل کرده بودم که اونو به SQL آوردم الان میخوام مقدار یک فیلد از اون رو داخل یه کمبو بریزم و با انتخاب هر یک از رکوردها محتویات اون رکور توی یه گرید نمایش بده . که در این حالت از بین 30 تا رکورد موجود فقط اطلاعات چند رکورد رو نمایش میده . البته اینم بگم ظاهرا با فیلد متنی مشکل داره چون همین کار رو با یه فیلد عددی انجام دادم خیلی راحت نشون داد . برای اینکه این مشکل رو حل کنم اومدم یه فیلد دیگه به اسم IndexType درست کردم تا به واسطه این فیلد اطلاعات رو استخراج کنم که باز هم نشد اینم نمونه کدم :
کد مربوط به کمبو باکس
private void TavanirFm_Activated(object sender, EventArgs e)
{
SQl_Server h = new SQl_Server();
string cmd = "select TypeShoghl,IndexType From Table_asli ";
//Shahrestan.Items.Add(OstanKh.Text);
SqlConnection con = new SqlConnection(h.SCS);
con.Open();
SqlDataAdapter adpi = new SqlDataAdapter(cmd, con);
DataSet ds = new DataSet();
adpi.Fill(ds);
TypeShoghl.DataSource = ds.Tables[0].DefaultView;
TypeShoghl.DisplayMember = "TypeShoghl";
TypeShoghl.ValueMember = "IndexType";
TypeShoghl.BindingContext = this.BindingContext;
************************************************
این هم دکمه برای نمایش
SQl_Server x = new SQl_Server();
string cmd = " select CodShogl,TypeShoghl,ReshteShoghl,Department from Table_asli where TypeShoghl = '" + TypeShoghl.Text + "' ";

grid1.DataSource = (x.Select(cmd)).Tables[0].DefaultView;

mam_65
چهارشنبه 21 اسفند 1392, 11:45 صبح
سلام
دوست عزیز شما ابتدا برای نمایش دادن اطلاعات توی دیتا بیس توی کمبو از این کد استفاده کنید

public void Combo_DB_Connection()
{
DataTable TypeShoghl = new DataTable();
using (SqlConnection sqlConn = new SqlConnection(new Stering().MStering()))//Greate a class with name Stering
{

using (SqlDataAdapter da = new SqlDataAdapter(@"select TypeShoghl,IndexType From Table_asli", sqlConn))
da.Fill(TypeShoghl);


}

TypeShoghl.DataSource = new BindingSource(TypeShoghl, null);
TypeShoghl.DisplayMember = "TypeShoghl";
TypeShoghl.ValueMember = "IndexType";

}



اینم کلاس connection

public class Stering
{
public string MStering()
{
return " Data Source=.;Initial Catalog=YOUR_DATA_BASE_NAME;Integrated security=true;";
}


}

ELI994
چهارشنبه 21 اسفند 1392, 12:11 عصر
دوست عزیز کانکشن من در یه کلاس جداگانه تعریف شده اگه دقت میکردین ابتدای دستورات یه شی از اون کلاس تعریف کردم و از کانکشن موجود توی خط SqlConnection con = new SqlConnection(h.SCS);
استفاده کردم
در ضمن من می تونم اطلاعات اون فیلد از جدول رو توی کمبو بریزم فقط نمیدونم چه اشکالی هست که وقتی روی یه رکورد کمبو کلیک می کنم بقیه فیلدهای مربوط به اون رکورد رو توی گرید نشون نمیده (البته چند تایی رو به صورت تصادفی نشون میده )
توی جدولهای دیگه که توی خوده SQL درست کردم یا مستقیم از اکسل آوردم هیچ مشکلی نیست ولی چون این از اکسس به اکسل و از اکسل به اینجا اومده توی خوندن متنها مشکل داره

mam_65
چهارشنبه 21 اسفند 1392, 12:17 عصر
وقتی اطلاعات به صورت صحیح در db ریخته بشه دیگه موقع خوندنش نباید مشکلی باشه اگه میخوای یه مثال کامل واست بنویسم بفرستم

ELI994
چهارشنبه 21 اسفند 1392, 12:18 عصر
ببینید اطلاعات داخل جدول بصورت کامل ریخته شده نمیدونم این جدول چرا تو کشیدن اطلاعات به واسطه متن مشکل داره

ELI994
چهارشنبه 21 اسفند 1392, 12:19 عصر
میخوایید جدول رو براتون توی فایل اکسل بفرستم ببینید

mam_65
چهارشنبه 21 اسفند 1392, 12:21 عصر
توی تعریف فیلدها دقت کردین

ELI994
چهارشنبه 21 اسفند 1392, 12:23 عصر
بله کردم دیگه درمونده شدم

mam_65
چهارشنبه 21 اسفند 1392, 12:25 عصر
بله کردم دیگه درمونده شدم
جدولتو یا سوستو بفرست تا یه نگاهی بهش بندازم

ELI994
چهارشنبه 21 اسفند 1392, 12:30 عصر
چشم این فرم رو باید از برنامه جدا کنم و جدول رو هم بصورت اکسل براتون می فرستم

ELI994
چهارشنبه 21 اسفند 1392, 12:33 عصر
اینم جدولم برابوتن ارسال کردم
ببخشید چه جوری باید اینجا اتچ کنم اون علامته سنجاق نیست ؟؟؟؟؟؟؟

ELI994
چهارشنبه 21 اسفند 1392, 12:41 عصر
http://uplod.ir/1rmg2ok4dwbi/table_asli.XLS.htm
اینم فایل جدولم
خیلی ممنون

mam_65
چهارشنبه 21 اسفند 1392, 16:20 عصر
117061

برو حالیییییییییییشو ببر!!!:لبخند:

ELI994
شنبه 24 اسفند 1392, 07:58 صبح
ببخشید مام عزیز فک کنم فایل رو اشتباه فرستید . من یه مشکل دیگه ای دارم

khokhan
شنبه 24 اسفند 1392, 18:01 عصر
کسی نیست جواب بده؟
اونجایی که قراره کوئری رو بر اساس متن کمبو باکس فیلتر کنی یه دونه " N " اضافه کن تا مشکل unicode حل بشه:لبخند:

اینطوری :

SQl_Server x = new SQl_Server();
string cmd = " select CodShogl,TypeShoghl,ReshteShoghl,Department from Table_asli where TypeShoghl = N'" + TypeShoghl.Text + "' ";

grid1.DataSource = (x.Select(cmd)).Tables[0].DefaultView;