PDA

View Full Version : مشکل در واکشی اطلاعات از sql



sara_aryanfar
سه شنبه 29 شهریور 1390, 21:40 عصر
من کلاس زیر رو برای ارتباط با پایگاه داده خودم نوشتم اولا از دوستان خواهش می کنم اشتباهاتم رو بگن دوم در قسمتی که می خوام اطلاعات رو واکشی کنم به مشکل برخوردم چون دیتا گریدمم در کلاس فرم هست و اینجا نمی تونم ازش استفاده کنم چطوری باید اطلاعات جداول رو به دیتا گرید منتقل کنم
class dbconnection
{
public static string constring;
public static string commandtxt;
private static SqlConnection conobject = new SqlConnection(constring);
SqlCommand comobject = new SqlCommand(commandtxt,conobject);
public void cstring(string constring2)
{
constring = constring2;


}
public void uid(string uidcomtxt)
{
commandtxt = uidcomtxt;
comobject.ExecuteNonQuery();
}
public string select(string seltxt)
{
commandtxt = seltxt;
SqlDataReader dbred = comobject.ExecuteReader();
//چطوری اطلاعات رو به دیتا گرید منتقل کنم اینجا


}
public void open() { conobject.Open(); }
public void clos() { conobject.Close(); }
}

رشته اتصال و کوئری مورد نظر از برنامه به این کلاس فرستاده میشه

msdsbi
سه شنبه 29 شهریور 1390, 23:53 عصر
دوست عزيز شما نبايد از SqlDataReader استفاده كنيد بايد از SqlDataAdapter استفاده كني كه كدش همانند SqlCommand هستش در اونجا مي توني به SqlDataAdapter فرمان بدي كه DataTable پر كنه چون SqlDataReader قابليت Fill نداره شما بايد حتما از SqlDataAdapter استفاده كنيد. نمونه كدش رو هم مي زارم خودت مي توني Public يا Private بودنش نسبت به كلاست استفاده كني .
SqlConnection con = new SqlConnection(@"Data Source=(Address Server);Initial Catalog=(Database Name);Persist Security Info=True;User ID=(UserName);Password=(Password)");
SqlDataAdapter sda = new SqlDataAdapter("select table_name as Name from INFORMATION_SCHEMA.Tables", con);
DataTable ds = new DataTable();
sda.Fill(ds);
dataGridView1.DataSource = ds;

sara_aryanfar
چهارشنبه 30 شهریور 1390, 00:16 صبح
ممکنه در مورد قابلیت fill توضیح بدین

RIG000
چهارشنبه 30 شهریور 1390, 01:47 صبح
متد fill میاد اطلاعات کشیده شده از بانک رو که در sda هست رو پر میکنه (fill) در ds (دیتا تیبل ما ) یعنی انتقال اطلاعات یا پر کردنشون با متد fill در دیتا تیبل و سپس جلوی منبع گرید میازه که نمایش بده اطلاعات رو .

hosaini
دوشنبه 04 مهر 1390, 15:18 عصر
سلام دوست عزیز من روش بهتری پیشهاد می کنم تا از این همه کد نویسی خلاص شوید استفاده از دیتاست و نوشتن کوئری توسط تیبل آداپتور
خواستی ایمیل بزن تا کامل برات توضیح بدم
aliasghar.hosaini@gmail.com
ایتم عکس نمونه75811
ایتم نمونه کدی که نوشتم
infoPeshnhadTableAdapter.UpdateQueryPersonalAdd((i nt?) comboBox1.SelectedValue,
(int?) comboBox2.SelectedValue,
(int?) comboBox3.SelectedValue
, (int?) comboBox4.SelectedValue, AS.UserID,
radioButton1.Checked, radioButton3.Checked, richTextBox1.Text
, txtdate.Text, (int?) numericUpDownD1.Value,
(int?) numericUpDownD2.Value, (int?) numericUpDownD3.Value,
(int?) numericUpDownD4.Value,Convert.ToInt32(txtsnaseh.Te xt));