مشکل در ثبت آیتم های checkedListBox در بانک
سلام دوستان من یک کنترل checkedListBox دارم که از طریق کد نویسی به یک فیلد در بانک متصله و کاربر قادره آیتم های مورد نظرش رو انتخاب کنه ولی وقتی با این کد می خوام آیتم های انتخاب شده رو در دیتا بیس ذخیره کنم این متن ذخیره میشه System.Data.DataRowView-System.Data.DataRowView- لطفا من رو راهنمایی کنید کارم گیره!
کد مورد استفاده رو ضمیمه میکنم.باتشکر
for (int i = 0; i < checkedListBox1.CheckedItems.Count; i++)
{
Temp += checkedListBox1.CheckedItems[i] + "-";
}
SqlConnection con = new SqlConnection(constr);
con.Open();
DataTable dt = new DataTable();
dad.Fill(dt);
string insstr = "insert into Table1(membergroup)" +
"Values (N'" + Temp + "')";
SqlCommand cmd = new SqlCommand(insstr, con);
cmd.ExecuteNonQuery();
con.Close();
نقل قول: مشکل در ثبت آیتم های checkedListBox در بانک
نقل قول:
نوشته شده توسط
raminsalemi
سلام دوستان من یک کنترل checkedListBox دارم که از طریق کد نویسی به یک فیلد در بانک متصله و کاربر قادره آیتم های مورد نظرش رو انتخاب کنه ولی وقتی با این کد می خوام آیتم های انتخاب شده رو در دیتا بیس ذخیره کنم این متن ذخیره میشه System.Data.DataRowView-System.Data.DataRowView- لطفا من رو راهنمایی کنید کارم گیره!
کد مورد استفاده رو ضمیمه میکنم.باتشکر
for (int i = 0; i < checkedListBox1.CheckedItems.Count; i++)
{
Temp += checkedListBox1.CheckedItems[i] + "-";
}
SqlConnection con = new SqlConnection(constr);
con.Open();
DataTable dt = new DataTable();
dad.Fill(dt);
string insstr = "insert into Table1(membergroup)" +
"Values (N'" + Temp + "')";
SqlCommand cmd = new SqlCommand(insstr, con);
cmd.ExecuteNonQuery();
con.Close();
سلام.
CheckedItems[i] در کد فوق یه object برمیگردونه، و از اونجایی که Temp بصورت string تعریف شده، متود ToString روی اون object فراخوانی میشه و System.Data.DataRowView برگردونده میشه. اون کد رو تغییر بدید، مشکل رفع میشه.
موفق باشید.
پاورقی: استفاده از Dynamic SQL ها هرگز توصیه نمیشه. روش بهتر اینه که برای SqlCommand خودتون، Parameter هایی در نظر بگیرید و اونها رو با مقادیر مورد نظر پر کرده، سپس اجرا کنید.
نقل قول: مشکل در ثبت آیتم های checkedListBox در بانک
دوست عزیز در صورت امکان کد پیشنهادی خودتون رو برام بزارید خیلی اظطراریه
نقل قول: مشکل در ثبت آیتم های checkedListBox در بانک
نقل قول:
نوشته شده توسط
raminsalemi
دوست عزیز در صورت امکان کد پیشنهادی خودتون رو برام بزارید خیلی اظطراریه
سلام.
من کدی رو که شما از طریق اون این CheckedListBox رو پر کرده اید، ندیده ام. بر اساس توضیحاتی که داده اید، میتونید به این شکل عمل کنید:
foreach(DataRowView drv in checkedListBox1.CheckedItems)
{
string itemName = drv["WhateverFieldName"] as string;
//whatever...
}
دقت کنید که اسم Field رو باید جای WhateverFieldName قرار بدید.
موفق باشید.
پاورقی: اگر با اینکار مشکل حل نشد، لطفا کدی رو که توسط اون CheckedListBox رو پر میکنید اینجا قرار بدید تا بتونم مساله رو حل کنم.
نقل قول: مشکل در ثبت آیتم های checkedListBox در بانک
SqlConnection con = newSqlConnection(constr);
SqlDataAdapter dad = newSqlDataAdapter("SELECT member FROM dbo.Table4 WHERE (codew = '" + comboBox1.SelectedValue + "' )GROUP BY member ", con);
DataTable dt = newDataTable();
dad.Fill(dt);
checkedListBox1.DataSource = dt;
checkedListBox1.DisplayMember = "member";
نقل قول: مشکل در ثبت آیتم های checkedListBox در بانک
نقل قول:
نوشته شده توسط
raminsalemi
SqlConnection con = newSqlConnection(constr);
SqlDataAdapter dad = newSqlDataAdapter("SELECT member FROM dbo.Table4 WHERE (codew = '" + comboBox1.SelectedValue + "' )GROUP BY member ", con);
DataTable dt = newDataTable();
dad.Fill(dt);
checkedListBox1.DataSource = dt;
checkedListBox1.DisplayMember = "member";
سلام.
foreach (DataRowView drv in this.checkedListBox1.Items)
{
string fieldName = drv["member"] as string;
}
موفق باشید.
نقل قول: مشکل در ثبت آیتم های checkedListBox در بانک
دوست عزیز متاسفانه این کد عمل نمیکنه من به این صورت از ش استفاده کردم لطفاً اگر ایرادی داره اصلاحش کنید ممنونم
;(
SqlConnection con = newSqlConnection(constr);
SqlDataAdapter dad = newSqlDataAdapter("SELECT member FROM dbo.Table4 WHERE (codew = '" + comboBox1.SelectedValue + "' )GROUP BY member ", con);
DataTable dt = newDataTable();
dad.Fill(dt);
foreach (DataRowView drv inthis.checkedListBox1.Items)
{
string fieldName = drv["member"] as string;
}
}
نقل قول: مشکل در ثبت آیتم های checkedListBox در بانک
نقل قول:
نوشته شده توسط
raminsalemi
دوست عزیز متاسفانه این کد عمل نمیکنه من به این صورت از ش استفاده کردم لطفاً اگر ایرادی داره اصلاحش کنید ممنونم
;(
SqlConnection con = newSqlConnection(constr);
SqlDataAdapter dad = newSqlDataAdapter("SELECT member FROM dbo.Table4 WHERE (codew = '" + comboBox1.SelectedValue + "' )GROUP BY member ", con);
DataTable dt = newDataTable();
dad.Fill(dt);
foreach (DataRowView drv inthis.checkedListBox1.Items)
{
string fieldName = drv["member"] asstring;
}
}
سلام.
متوجه نمیشم چه تفاوتی بین این حقله، و اونی که من نوشتم هستش... هر دو یکی هستن و مشکلی هم نداره.
موفق باشید.
نقل قول: مشکل در ثبت آیتم های checkedListBox در بانک
مشکل اینه که
checkedListBox
آیتم نمیگیره و عملاً هیچ اتفاقی نمیفته به نظر شما ایراد کار چیه
نقل قول: مشکل در ثبت آیتم های checkedListBox در بانک
نقل قول:
نوشته شده توسط
raminsalemi
مشکل اینه کهcheckedListBox آیتم نمیگیره و عملاً هیچ اتفاقی نمیفته به نظر شما ایراد کار چیه
آقا الان مشکل چیه؟ من دیگه خودم یه پروژه ایجاد کردم، و کدهایی که شما گفته بودید رو برای پر کردن لیست مزبور زدم و لیست به درستی پر شد. در مرحله بعدی هم اون حلقه رو برای شما نوشتم، تا شما بتونید لیست آیتمهای انتخاب شده رو توی یک string بریزید و با همون کد قبلی در بانک ذخیره کنید.
حالا الان مشکل چیه؟ ایرادی وجود داره؟ لطفا اینقدر خلاصه نویسی نکنید، یک بار واضح در دو سه پاراگراف توضیح بدید هدفتون چیه، کار رو چطور انجام میدید، و به چه مشکلی برمیخورید تا بشه یکبار پرونده این تاپیک رو بست.
موفق باشید.
نقل قول: مشکل در ثبت آیتم های checkedListBox در بانک
دوست عزیز با تشکر از حوصله ای که برای این مشکل صرف کردید من در برنامم یک کنترل
comboBox دارم که به فیلد کد در بانک متصله و یک کنترل
comboBox دیگه که به نام کمیته ها متصله ویک کنترل
checkedListBox که اعضای کمیته ها رو نشون میده با انتخاب کد کمیته نام کمیته درcomboBox دوم و نام اعضا در checkedListBox نمایش داده میشه که کاربر اعضایی رو که می خواد میتونه تیک بزنه ولی با کدی که شما لطف کردید checkedListBox پر نمیشه ممنون از راهنمایی های خوبتون
نقل قول: مشکل در ثبت آیتم های checkedListBox در بانک
نقل قول:
نوشته شده توسط
raminsalemi
دوست عزیز با تشکر از حوصله ای که برای این مشکل صرف کردید من در برنامم یک کنترل comboBox دارم که به فیلد کد در بانک متصله و یک کنترل
comboBox دیگه که به نام کمیته ها متصله ویک کنترل checkedListBox که اعضای کمیته ها رو نشون میده با انتخاب کد کمیته نام کمیته درcomboBox دوم و نام اعضا در checkedListBox نمایش داده میشه که کاربر اعضایی رو که می خواد میتونه تیک بزنه ولی با کدی که شما لطف کردید checkedListBox پر نمیشه ممنون از راهنمایی های خوبتون
بسیار خوب. متوجه شدم.... سوء تفاهم شد. من برای پر کردن CheckedListBox شما کدی ننوشتم. شما باید از همون کدی که خودتون نوشته بودید استفاده کنید، یعنی:
SqlConnection con = new SqlConnection(constr);
SqlDataAdapter dad = new SqlDataAdapter("SELECT member FROM dbo.Table4 WHERE (codew = '" + comboBox1.SelectedValue + "' )GROUP BY member ", con);
DataTable dt = new DataTable();
dad.Fill(dt);
checkedListBox1.DataSource = dt;
checkedListBox1.DisplayMember = "member";
من در مورد پر کردن CheckedListBox صحبتی نکردم، فقط عرض کردم از Dynamic SQL ها استفاده نکنید. برای این بخش از صحبتم هم کدی ننوشتم...
در نهایت اون Loop رو به شما دادم، یعنی:
foreach (DataRowView drv in this.checkedListBox1.Items)
{
string fieldName = drv["member"] as string;
}
که شما بتونید توی این حلقه، متغیر temp خودتون رو با fieldName پر کنید و اونو با کد مورد نظر خودتون در بانک اضافه کنید. بدین ترتیب، دیگه این نام member ها هستش که در بانک ذخیره خواهد شد و نه رشته System.Data.DataRowView... (در واقع به سوال اصلی تاپیک پاسخ دادم، و نه چگونگی استفاده از Parametric Command ها و ...)
آیا با این توضیحات، بازهم مشکلی وجود داره؟ اگر اینطوره، بفرمایید تا مساله رو حل کنم.
موفق باشید.