PDA

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



pooriajojo
شنبه 16 اسفند 1393, 13:54 عصر
واسه اتصال به پایگاه داده این کد را نوشتم
ولی هد کلمه را error میده : ConfigurationManager

اینم برنامه


private DataSet1 DataSource = new DataSet1();

public DataTable SelectData()
{
string connectionstring = System.Configuration.ConfigurationManager.Connecti onStrings["ConnectionString"].ConnectionString;
string selectQuery = "SELECT * FROM tablePersonels;";
SqlConnection SqlConnection1 = new SqlConnection(connectionstring);
SqlCommand SqlCommand1 = new SqlCommand(selectQuery, SqlConnection1);
SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter(SqlCommand1);

try
{
DataTable result = new DataTable();
SqlDataAdapter1.Fill(this.DataSource.Tables["tablePersonels"]);
return this.DataSource.Tables[0];
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return null;
}
finally
{
SqlCommand1.Connection.Close();
}


اینم عکس error
129229

SabaSabouhi
شنبه 16 اسفند 1393, 19:04 عصر
سلام
این خط رو به بالای کد اضافه کن:


using System.Configuration;



صبا صبوحی

pooriajojo
شنبه 16 اسفند 1393, 20:59 عصر
سلام
این خط رو به بالای کد اضافه کن:


using System.Configuration;



صبا صبوحی

خانم بازن نشد هنئز همان error میده

pooriajojo
شنبه 16 اسفند 1393, 21:00 عصر
این using هم زدم بازم نشد . هنوز همون error را میده
یکی کمممممممممک کنه

Mofid.m
شنبه 16 اسفند 1393, 21:12 عصر
تو قسمت Solution Explorer روی پوشه References راست کلیک کن و گزینه Add Reference رو بزن تا پنجره Add Reference باز بشه.
تو تب اول (.NET) ، توی اون لیستش روی System.Configuration کلیک کن و Ok رو بزن.

بعد همونطوری که دوستمون آقای صبوحی گفتن حتما Using System.Configuration رو به برنامت اضافه کن.

pooriajojo
شنبه 16 اسفند 1393, 22:29 عصر
اقا دمت گرم اون اوکی شد ولی حالا این خطا را میده

Object reference not set to an instance of an object.

تو این خط


string connectionstring = System.Configuration.ConfigurationManager.Connecti onStrings["ConnectionString"].ConnectionString;


اینم اینم بقیه برنامه که این خط توشه


string connectionstring = System.Configuration.ConfigurationManager.Connecti onStrings["ConnectionString"].ConnectionString;
string selectQuery = "SELECT * FROM vrod;";
SqlConnection SqlConnection1 = new SqlConnection(connectionstring);
SqlCommand SqlCommand1 = new SqlCommand(selectQuery, SqlConnection1);
SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter(SqlCommand1);

try
{
DataTable result = new DataTable();
SqlDataAdapter1.Fill(this.DataSource.Tables["vrod"]);
return this.DataSource.Tables[0];
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return null;
}
finally
{
SqlCommand1.Connection.Close();
}



من یه سوال هم دارم این چجوری نامه پایگاه داده من که khadamat هست میشناسه اسم جدول مورد نظرم هم vrod است

SabaSabouhi
یک شنبه 17 اسفند 1393, 08:02 صبح
این using هم زدم بازم نشد . هنوز همون error را میده
یکی کمممممممممک کنه

سلام
ببین تو Referenceها System.Configuration اضافه شده یا نه. اگه نیست اونجا هم اضافه کن.
یکی از کارهایی که برنامه‌ی Resharper می‌کنه اینه که خودش هم using رو برات اضافه می‌کنه و هم تو Resourceها اضافه می‌کنه.

صبا صبوحی

golbafan
یک شنبه 17 اسفند 1393, 08:06 صبح
سلام دوست عزیز

برای گرفتن عکس از صفحه مانیتورتون باید از دکمه print screen کیبورد استفاده کنید که معمولا نوشته: prt scrn
بعد میتونید اون رو مثلا در paint الصاق کنید...

Mofid.m
یک شنبه 17 اسفند 1393, 08:32 صبح
شما این خط کدی که نوشتی اشتباهه

string connectionstring = System.Configuration.ConfigurationManager.Connecti onStrings["ConnectionString"].ConnectionString;
شما بگو دقیقا میخوای برنامت چی کار کنه و جدول دیتابیس رو با فیلد هاش بزار تا ببنیم مشکل چیه.

pooriajojo
یک شنبه 17 اسفند 1393, 09:26 صبح
ببینین من میخوام اطلاعات از پایگاه داده بگیرم داخل دیتا گرید بریزم بعد دکمه پرینت بزنم اطلاعات از دیتا گرید بره به کریستال ریپورت برای چاپ

اینم برنامه که نوشتم . فکر کنم از دیتی تیبل استفاده کرده
ولی نشده اون error هارا میده .


public partial class Form1 : Form
{
private DataSet1 DataSource = new DataSet1();

public DataTable SelectData()
{
string connectionstring = System.Configuration.ConfigurationManager.Connecti onStrings["ConnectionString"].ConnectionString;
string selectQuery = "SELECT * FROM vrod;";
SqlConnection SqlConnection1 = new SqlConnection(connectionstring);
SqlCommand SqlCommand1 = new SqlCommand(selectQuery, SqlConnection1);
SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter(SqlCommand1);

try
{
DataTable result = new DataTable();
SqlDataAdapter1.Fill(this.DataSource.Tables["vrod"]);
return this.DataSource.Tables[0];
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return null;
}
finally
{
SqlCommand1.Connection.Close();
}
}
public Form1()
{
InitializeComponent();
}

private void button2_Click(object sender, EventArgs e)
{
this.dataGridView1.DataSource = this.SelectData();
}

private void button1_Click(object sender, EventArgs e)
{
if (this.DataSource.tablePersonels.Rows.Count > 0)
{
frmReporting reporting = new frmReporting();
reporting.DataSource = this.DataSource;

reporting.ShowDialog();
}
}
}


اینم کدای که توی فرم کریستال ریپورت ویور نوشتم


public partial class frmReporting : Form
{
public frmReporting()
{
InitializeComponent();
}
public DataSet1 DataSource { get; set; }
private void frmReporting_Load(object sender, EventArgs e)
{
CrystalReport1 report1 = new CrystalReport1();
report1.SetDataSource(this.DataSource.Tables["vrod"]);
crystalReportViewer1.ReportSource = report1;
}

اسم پایگاه دادم khadamat
اسم جدولم vrod
لطفا کسی یا همینا درست کنه یا ی برنامه همینجا واسم بزاره منا به صحفه دیگه پاس نده . مرسیییی

Mofid.m
یک شنبه 17 اسفند 1393, 10:22 صبح
ببین شما خیلی کارو برای خودت سخت کردی.
به جای همه اینا با چند خط کد ساده میتونی این کارو انجام بدی.
البته من نمیدونم پروژه چطور قرار عمل کنه شاید به این کد ها نیاز داری که نوشتی.

من یه مثال ساده میزنم برات تا تیبل دیتابیس رو به دیتاگرید اتصال بدم.
فرض کن توی فرم یه دیتا گرید دارم و یه باتن.
میخوام با زدن باتن اطلاعات تیبل رو بزاره توی دیتاگرید.
تو رویداد کلیک باتن این کدو مینویسم.


SqlConnection conn=new SqlConnection("server=(local);database=khadamat;integrated security=true");
SqlDataAdapter da=new SqlDataAdapter("Select * from vrod",conn);
da.SelectCommand.CommandType=CommandType.Text;

DataTable dt=new DataTable();
da.fill(dt);

DataGridView1.DataSource=dt;

این کد میاد محتوای جدول شما رو میریزه توی دیتاگرید.
بعدش میتونی بفرستیش به Cristal Report
من خیلی وقته با کریستال ریپورت کار نمی کنم.
اما برای چاپ دیتا گریدت کافیه دیتا تیبل رو بفرستی به کریستال ریپورت.

pooriajojo
یک شنبه 17 اسفند 1393, 10:47 صبح
مشل همینه من هم اینا نوشتم ولی چجوری این کد ساده شمارا که اطلاعات داخل دیتا گرید رفته را انتقال بدم به کریستال ریپورت . الان با کد شما اطلاعات اومد داخل دیتی گرید حالا چجوری اطلاعاتا ببرم تو کریستال ریپورت . اینا کسی بلده ؟

بزارین کامل تر بگم که مت مبتدی هستم بتونم راحت از کمک هادون استفاده کنم
این کد های هست که من برای گرفتن اطلاعات از دیتا بیس به داخل دیتا گرید ویو تو برنامم استفاده می کنم


SqlConnection myconn = new SqlConnection("Data Source=(local);Initial Catalog=khadamat;Integrated Security=True");
SqlDataAdapter da = new SqlDataAdapter("select id,namep,neshanp,daraje,ghesmat,taahol from personel1 where idmeli ='" + txidmeli.Text + "'", myconn);
DataSet ds = new DataSet();
ds.Clear();
da.Fill(ds, "Table");
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "Table";
myconn.Close();

حالا بهم بگین دقیق با کد ها و اگه using یا چیزه خاصی دیگه داره حتی تعریف متغیر چون من خیلی مبتدی هستم .
چجوری با زدن دکمه با توجه به این کدها من اطلاعات دیتا گرید ویو ببرم تو کریستال ریپورت نمایش بدم .
از کریستال ویور هم استفاده بشه . کدای داخل فرم آن هم بگین
داخل کریستال ریپورت هم اگه کاری داره بگین
مرسیییی

esafb52
دوشنبه 18 اسفند 1393, 13:58 عصر
خب دوست عزير شما اينا كدهاي دوستمون رو تو قالب يك متد بذار و هر جا خواستي ازش استفاده كن

pooriajojo
دوشنبه 18 اسفند 1393, 17:20 عصر
همین که میگی من بلد نیستم . توضیح بده . کد بنویس

Mofid.m
دوشنبه 18 اسفند 1393, 17:40 عصر
ببین دوست عزیز، شما باید کد هاتو بزاری توی یه تابع
تابع رو هم به این شکل تعریف کن.


private DataTable SetDT()
{
SqlConnection conn=new SqlConnection("server=(local);database=khadamat;in tegrated security=true");
SqlDataAdapter da=new SqlDataAdapter("Select * from vrod",conn);
da.SelectCommand.CommandType=CommandType.Text;

DataTable dt=new DataTable();
da.fill(dt);
return dt;
}

با انجام این کار شما یه تابه داری که خروجیش یه دیتا تیبله و این دیتا تیبل رو هر جا خاستی ازش استفاده کن.
مثلا اگر میخوای دیتا گرید رو بهش متصل کنی کافیه بگی:




DataGridView1.DataSource=SetDT();