PDA

View Full Version : مشکل جدید در اتصال به sql



m.bibjan
پنج شنبه 18 اسفند 1390, 14:00 عصر
سلام به این مشکل جدید برخوردم چیکارکنم حل بشه
Invalid object name 'SQLDB'.

AliSaeedi_v
پنج شنبه 18 اسفند 1390, 17:03 عصر
سلام دوستم کدی که نوشتی هم بذار...خطا میگه sqldb رو نمیشناسه!!!

m.bibjan
پنج شنبه 18 اسفند 1390, 17:49 عصر
سلام این کدمه
private void btnshow_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection();
conn.ConnectionString = @"Data Source=.\SQLEXPRESS;
AttachDbFilename=|DataDirectory|\SQLDB.mdf;
Integrated Security=True;User Instance=True";
conn.Open();

SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "select * from SQLDB";


SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;

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

this.Text = "تعداد دوستان : " + dt.Rows.Count;

dataGridView1.DataSource = dt;
conn.Close();
}

private void btnsave_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection();
conn.ConnectionString = @"Data Source=.\SQLEXPRESS;
AttachDbFilename=|DataDirectory|\SQLDB.mdf;
Integrated Security=True;User Instance=True";
conn.Open();

SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
string sql = "insert into SQLDB (sid,sname,sfamily,sdadname,sidpublic)";
sql += "values( {0} , {1} , {2} , {3} , {4} )";
sql = string.Format(sql,
txtid.Text,
txtname.Text,
txtfamily.Text,
txtdadname.Text,
txtidpublic.Text);
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
this.Close();

Mahmoud Zaad
پنج شنبه 18 اسفند 1390, 18:08 عصر
سلام
اسم جدولت توی بانک هم SQLDB هست؟ ممکنه اسم جدول رو اشتباه نوشته باشی.

m.bibjan
پنج شنبه 18 اسفند 1390, 20:08 عصر
سلام
اصلا اسم جدولم توی رشته هم برگرفته از اسم بانکه دیگه درسته؟
پس اسم هم درسته
به نظرتون چیکار میشه کرد؟
به این خط که میرسه ارور میدهda.Fill(dt);

mp_mp353
پنج شنبه 18 اسفند 1390, 20:34 عصر
اینو تست کن
da.Fill(dt,"tablename");

m.bibjan
جمعه 19 اسفند 1390, 00:10 صبح
سلام نشد که بشه متاسفانه.فکر کنم اولین کسی هستم که به این مشکل برخوردم...
حالا به نظرتون چیکار میشه کرد؟

mp_mp353
جمعه 19 اسفند 1390, 08:51 صبح
به جای datatable از dataset استفاده کن ببین درست میشه؟
DataSet ds = new DataSet ();
da.Fill(ds,"table1");

this.Text = "تعداد دوستان : " + ds.tables[0].Rows.Count;

dataGridView1.DataSource = ds.tables[0];

m.bibjan
جمعه 19 اسفند 1390, 12:00 عصر
سلام ممنون از توجهتون و پاسخ هاتون . اینکار رو کردم ولی دوباره همون ارور رو میده.
نمونه تستی هست که داشته باشین البته با دیتابیسش.و درست باشه.اگه بدین ممنون میشم ازتون.

Mahmoud Zaad
جمعه 19 اسفند 1390, 12:07 عصر
به نظرم شما نمونه تون رو قرار بدید بهتره.

damanpak
جمعه 19 اسفند 1390, 12:15 عصر
سلام دوست گلم من توی وی بی دات نت از این کد اسفاده میکنم شما هم اینو به سی شارپ تبدیل کن تا ببینی مشکلت حل میشه یا نه

اول توی قسمت DECLARATION فرم برنامت اینا رو تعریف کن

Dim con As New SqlConnection, dv As New DataView, ds As New DataSet

حالا توی فرم لود برنامت کانکشن رو مقدار دهی کن

con.ConnectionString = "Data Source=.\SERVER2000;Initial Catalog=dabirkhaneh;Integrated Security=True"

حالا یه روال بنویس و این کدها رو توش بزار بعدش روال رو فراخوانی کن
Dim sql As New SqlDataAdapter("select * from SQLDB", con.ConnectionString)
sql.Fill(ds)
dv.Table = ds.Tables(0)
اگه مشکلت حل نشد فایل بانک اطلاعاتیتو بزار واسم تا ببینم مشکل از بانک هست یا نه

m.bibjan
جمعه 19 اسفند 1390, 14:08 عصر
سلام از جواب هاتون ممنون
دیدم درست نمیشه کلا پاکش کردم و یکی دیگه ساختم . خیلی عجیب بود این اروری که میداد
حالا نمیدونم که چرا این ارور رو میده.
Invalid column name 'ali'.این واسه اسمشه
Invalid column name 'hasani'.این واسه نام خانودگیشه
Invalid column name 'mohsen'. اینم واسه نام پدرشه
این ارور واسه وارد کردن اطلاعات جدید به دیتابیسمه.اگه نیازه بگین تا فایل رو بذارم یه نگاه بهش بندازین؟
بازم ممنون

Mahmoud Zaad
جمعه 19 اسفند 1390, 14:14 عصر
اگه نیازه بگین تا فایل رو بذارم یه نگاه بهش بندازین؟

اگه می خوای حل بشه نیازه!

m.bibjan
جمعه 19 اسفند 1390, 15:13 عصر
سلام بفرمایید
ممنون از توجهتون

Mahmoud Zaad
جمعه 19 اسفند 1390, 16:08 عصر
دوست عزیز من sql ام 2005 هست بنابراین نتونستم بانکت رو ببینم و خودم درستش کردم. به هر حال توی دستورات insert دو تا مشکل داری یکی توی کوئری که باید به صورت زیر بنویسی


sql += "values( '{0}' , '{1}' , '{2}' , '{3}' , '{4}' )";

کوتیشن ها رو نذاشته بودی.
و در کل باید اینطوری بنویسیش:



string sql = "insert into SQL (mname,mfamily,mdadname,midpublic,mid)";
sql += "values( '{0}' , '{1}' , '{2}' , '{3}' , '{4}' )";
sql = string.Format(sql,
txtname.Text,
txtfamily.Text,
txtdadname.Text,
txtidpublic.Text,
txtid.Text);

دوم اینکه به جای اینکه کانکشن رو ببندی، فرم رو بسته بودی باید بنویسی


conn.Close();

m.bibjan
جمعه 19 اسفند 1390, 16:21 عصر
راستش دلم نیومد فقط دکمه تشکر رو بزنم.خیلی ممنون