Invalid Object Name "table name "ERROR
سلام .
خسته نباشيد
من يك application نوشتم با C# كه ابتدا به بانك اطلاعاتي متصل ميشه و هنگام لود شدن فرم يك جدول مي سازه.
بعد با زدن يك دكمه فيلدهاي جدول داخل ديتا ريد نمايش داده مي شه.
من يك دفعه تست كردم اين كارو انجام داده شد
بعد دوباره جدول رو حذف كردم و بعدش دوباره تست كردم هنگام ولي هنگام پر كردن ديتا ست به من خطا ميده . اين خطا Invalid Object Name "table name
لطفا" راهنماييم كنيد.
ممنون
اين هم كدش
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
using
System.Data.SqlClient;
namespace
WindowsFormsApplication1
{
publicpartialclassForm1 : Form
{
SqlConnection sqlcon = newSqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename='D:\\Documen ts and Settings\\Administrator\\My Documents\\Visual Studio 2008\\Projects\\WindowsFormsApplication1\\WindowsF ormsApplication1\\Database1.mdf';Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlDataAdapter sqladpt;
DataView dview;
// SqlCommand scom = new SqlCommand("CREATE TABLE a(stno char(8) primary key,fname char(20), lname char(50), id char(5));");
CurrencyManager cmanage;
public Form1()
{
InitializeComponent();
}
privatevoid button1_Click(object sender, EventArgs e)
{
sqlcon.Open();
sqladpt = newSqlDataAdapter();
sqladpt.SelectCommand = newSqlCommand();
sqladpt.SelectCommand.Connection = sqlcon;
sqladpt.SelectCommand.CommandText = "SELECT * FROM a;";
sqladpt.SelectCommand.CommandType = CommandType.Text;
SqlCommandBuilder sqlcombuild = newSqlCommandBuilder(sqladpt);
DataSet dset = newDataSet();
sqladpt.Fill(dset, "a");
dataGridView1.DataSource = dset;
dataGridView1.DataMember = "a";
sqlcon.Close();
}
privatevoid Form1_Load(object sender, EventArgs e)
{
try
{
SqlCommand scom = newSqlCommand("CREATE TABLE a(stno char(8) primary key,fname char(20), lname char(50), id char(5));", sqlcon);
MessageBox.Show("sucessful");
}
catch
{
MessageBox.Show("error");
}
}
}
}
نقل قول: Invalid Object Name "table name "ERROR
شما توی لود فرم این دستور رو نوشتید:
try
{
SqlCommand scom = newSqlCommand("CREATE TABLE a(stno char(8) primary key,fname char(20), lname char(50), id char(5));", sqlcon);
MessageBox.Show("sucessful");
}
توی خط اول یه Command ساختید ولی این جایی اونو execute نکردید! یعنی جدولی ساخته نمیشه که بعد جای دیگه درخواست واکشی اطلاعات از اون جدول رو کنید. احتمالا اگه دستورات اجرای این Command رو بنویسید درست بشه.
نقل قول: Invalid Object Name "table name "ERROR
مشكل رو فهميدم ولي راه حلي به نظرم نمي رسه :عصبانی++:
توي قسمت لود فرم هستش
اگه كد رو ببينيد
scom.ExecuteNonQuery();
اين عبارت داخلش هست
اگر جدول وجود نداشته باشه درست كار مي كنه ولي اگه وجود داشته باشه نه.
يك دشتوري براي وجود يا عدم وجود جدول مي خوام كه چك كنه جدول وجود داره يا نه.
كسي اين دستور رو داره؟:گریه:
با تشكر از تمامي دوستان
privatevoid Form1_Load(object sender, EventArgs e)
{
try
{
sqlcon.Open();
scom =
newSqlCommand();
scom.Connection = sqlcon;
scom.CommandText = "CREATE TABLE b(stno char(8) primary key,fname char(20), lname char(50), id char(5));";
scom.ExecuteNonQuery();
sqlcon.Close();
MessageBox.Show("sucessful");
}
catch
{
MessageBox.Show("error");
}
}
نقل قول: Invalid Object Name "table name "ERROR
نقل قول: Invalid Object Name "table name "ERROR
نقل قول:
نوشته شده توسط
saeedr22
مشکل از کد sql هستش.
اين چه مشكليه كه وقتي جدول وجود نداشته باشه درست كار مي كنه ؟
وقتي وجود داشته باشه نه ؟
راه حل ؟؟؟؟؟؟
نقل قول: Invalid Object Name "table name "ERROR
وقتی جدول وجود نداره برنامه درست کار میکنه چون این اتفاق ها می افته
1.OnLoad فرم اجرا می شه و جدول ایجاد می شه
2.اطلاعات خوانده می شه و نمایش داده می شه
اما وقتی جدول وجود دارد
1.OnLoad اجرا می شه و سعی در ایجاد یک جدول به اسم b می کنه اما چون دفعه قبل این جدول ایجاد شده یک خطا از برنامه گرفته می شه که منظورش اینکه که شما سعی در ایجاد یک جدول دارید که قبلا ساخته شده (جدولی به این اسم وجود داره)
برای رفع مشکل برای ایجاد جدول دستور زیر رو پیشنهاد میدم
IF(NOT EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[b]') AND type in (N'U')))
CREATE TABLE b(stno char(8) primary key,fname char(20), lname char(50), id char(5));