PDA

View Full Version : مشکل در sqldataadapter



mohsen_zelzela00
دوشنبه 15 تیر 1388, 11:50 صبح
با سلام خدمت دوستان
من میخواهم یک شی از sqldataadapter تعریف کنم و در کل فرم خودم از آن استفاده کنم
به کد زیر توجه کنید


namespace AttachDatabase
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
SqlConnection con = new SqlConnection(@"Data Source=.;Initial Catalog=mm;Integrated Security=True");
DataSet ds=new DataSet();
SqlDataAdapter da = new SqlDataAdapter();


و در رویداد کلیک button خودم حالا میخوام یک سری اطلاعاتselect کنم کد زیر را نوشتم


da.SelectCommand.CommandText = "select * from uni";
da.SelectCommand.Connection = con;
da.Fill(ds, "s");
dataGridView1.DataSource = ds.Tables[0];

ولی error زیر رو میده


Object reference not set to an object

k_m
دوشنبه 15 تیر 1388, 12:18 عصر
فکر کنم مشکل از اینه که شما وقتی Adapter رو ساختی Connection بهش ندادی. یعنی عملا الان شما هیچ جا به adapter نگفتی از این Connection استفاده کن.
از یک Override دیگه استفاده کن که Connection هم بگیره.

mohsen_zelzela00
دوشنبه 15 تیر 1388, 12:44 عصر
فکر کنم مشکل از اینه که شما وقتی Adapter رو ساختی Connection بهش ندادی. یعنی عملا الان شما هیچ جا به adapter نگفتی از این Connection استفاده کن.
از یک Override دیگه استفاده کن که Connection هم بگیره.

دوست عزیز ممنون میشم یک مثال بزنیید خیلی بهش احتیاج دارم......

saeedr22
دوشنبه 15 تیر 1388, 13:10 عصر
با سلام خدمت دوستان
من میخواهم یک شی از sqldataadapter تعریف کنم و در کل فرم خودم از آن استفاده کنم
به کد زیر توجه کنید


namespace AttachDatabase
{
publicpartialclassForm2 : Form
{
public Form2()
{
InitializeComponent();
}
SqlConnection con = newSqlConnection(@"Data Source=.;Initial Catalog=mm;Integrated Security=True");
DataSet ds=newDataSet();
SqlDataAdapter da = newSqlDataAdapter();





da.SelectCommand.CommandText = "select * from uni";
da.SelectCommand.Connection = con;
da.Fill(ds, "s");
dataGridView1.DataSource = ds.Tables[0];

ولی error زیر رو میده


Object reference not set to an object




فقط con رو open نکردین همین :متفکر: دیگه اشکالی نمیبینم...

mohsen_zelzela00
دوشنبه 15 تیر 1388, 13:30 عصر
کد اونو باید اینجوری بنویسید



SqlCommand cmd=new SqlCommand();
cmd.CommandText = "select * from uni";
cmd.Connection = con;
da.SelectCommand = cmd;
da.Fill(ds, "uni");
Dv.Table = ds.Tables[0];
dataGridView1.DataSource = Dv;

saeedr22
دوشنبه 15 تیر 1388, 16:59 عصر
کد اونو باید اینجوری بنویسید



SqlCommand cmd=newSqlCommand();
cmd.CommandText = "select * from uni";
cmd.Connection = con;
da.SelectCommand = cmd;
da.Fill(ds, "uni");
Dv.Table = ds.Tables[0];
dataGridView1.DataSource = Dv;


vaghiti ke con ro open nakarde aslan open nemishe.
va
dar zemn age open beshe code balayi ham doroste faghat ye con.open nashode

mohsen_zelzela00
دوشنبه 15 تیر 1388, 17:07 عصر
vaghiti ke con ro open nakarde aslan open nemishe.
va
dar zemn age open beshe code balayi ham doroste faghat ye con.open nashode

دوست عزیز این کدی که نوشتم جواب داد در ضمن من تا حالا برای کار با dataadapter هیچ موقعه connection را open نکردم و فقط connection را با dataadapter ست میکنم

با تشکر

Reza_Yarahmadi
دوشنبه 15 تیر 1388, 17:48 عصر
دوست عزیز خاصیت SelectCommand خودش یه کلاسه و باید اول حافظه بهش تخصیص بدی بعد به خاصیتهای CommandText و Connectoion اونو مقدار بدی.
کافیه یک خط به کدت اضافه کنی


da.SelectCommand = new SqlCommand();
da.SelectCommand.CommandText = "select * from uni";
da.SelectCommand.Connection = con;
da.Fill(ds, "s");
dataGridView1.DataSource = ds.Tables[0];

Reza_Yarahmadi
دوشنبه 15 تیر 1388, 17:51 عصر
vaghiti ke con ro open nakarde aslan open nemishe.
va
dar zemn age open beshe code balayi ham doroste faghat ye con.open nashode

دوست من DataAdapter یه کلاس قویه، زمانی که دستور Fill رو مینویسی خودش کانکشن رو باز میکنه ، اطلاعات خونده شده رو توی دیتاست یا هر چیزی دیگه میریزه و بعدشم کانکشن رو میبنده.

mohsen_zelzela00
دوشنبه 15 تیر 1388, 19:38 عصر
دوست عزیز خاصیت SelectCommand خودش یه کلاسه و باید اول حافظه بهش تخصیص بدی بعد به خاصیتهای CommandText و Connectoion اونو مقدار بدی.
کافیه یک خط به کدت اضافه کنی


da.SelectCommand = new SqlCommand();
da.SelectCommand.CommandText = "select * from uni";
da.SelectCommand.Connection = con;
da.Fill(ds, "s");
dataGridView1.DataSource = ds.Tables[0];


دوست عزیز همونجوری که قبلً هم گفتم کدی که من نوشتم جواب داد ولی خوب کد اصولی کدی هست که شما نوشتید

با تشکر

Xcalivorse
دوشنبه 15 تیر 1388, 20:33 عصر
اول بايد كانكشنت رو Open كني



con.open();
da.SelectCommand.CommandText = "select * from uni";
da.SelectCommand.Connection = con;
da.Fill(ds, "s");
dataGridView1.DataSource = ds.Tables[0];



ببين جواب ميده

mohsen_zelzela00
دوشنبه 15 تیر 1388, 21:03 عصر
اول بايد كانكشنت رو Open كني



con.open();
da.SelectCommand.CommandText = "select * from uni";
da.SelectCommand.Connection = con;
da.Fill(ds, "s");
dataGridView1.DataSource = ds.Tables[0];



ببين جواب ميده
دوست عزیز با کدی که من نوشتم جواب داد..........