2015-05-13 87 views
0

我得到這個錯誤:在這條線來自SQL Server數據庫的對象名稱無效?

Invalid object name 'Members'

int MemberExist = (int)check_Member.ExecuteScalar(); 

以我目前的DB,看起來像這樣:http://imgur.com/6fyKGn3爲什麼這是不是可以執行?

代碼:

// Get the connection 
SqlConnection DBConnection = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=""E:\DS\Prac5\Part1\App_Data\MyDatabase.mdf"";Integrated Security=True"); 

SqlDataReader Reader = null; 

DBConnection.Open(); 
SqlCommand check_Member = new SqlCommand("SELECT * FROM Members WHERE MembershipID = FirstName AND LastName = @Txtnput", DBConnection); 
check_Member.Parameters.AddWithValue("@Txtnput", txtMembershipid.Text); 

int MemberExist = (int)check_Member.ExecuteScalar(); 
+0

將Mydatabase.mdf更改爲Da tabase.mdf並刪除「之間檢查我的回答下面 – Sachu

回答

0

它看起來像你必須改變查詢成爲

"SELECT count(*) FROM Members WHERE MembershipID = FirstName AND LastName = @Txtnput" 

因爲ExecutesScalar預計從查詢一個價值迴歸。

+0

嗯,我只是試過,但它仍然給我同樣的例外。 「無效的對象名'成員'。」 – user4814432

1

在連接字符串中似乎有些錯誤。

Data Source=(LocalDb)\v11.0;Initial Catalog=Database;Integrated Security=SSPI;AttachDBFilename='E:\DS\Prac5\Part1\App_Data\MyDatabase.mdf' 

您還可以使用

"SELECT TOP 1 MembershipID FROM Members WHERE MembershipID = FirstName AND LastName = @Txtnput" 

確保你的表名是成員。您可以在模型或數據庫中進行檢查。

bool IsMemberExist; 
object MembershipId = check_Member.ExecuteScalar(); 

if(MembershipId != null) 
{ 
    IsMemberExist = true; 
    //Do other things here. //Convert.ToInt32(MembershipId) 
} 
+0

不幸的是我的桌子是絕對正確的名字,你可以通過我發佈的imgur鏈接看到。 – user4814432

+0

啊,是的,謝謝你,我的連接字符串是不正確的。 – user4814432

1

請確保您是否數據庫MyDatabase.mdf包含名爲Members表。 請用以下方式測試。

SqlCommand check_table= "select case when exists((select * from information_schema.tables where table_name = '" + tableName + "')) then 1 else 0 end"); 
int IsTableExists = (int)check_table.ExecuteScalar(); 
if(IsTableExists ==1) 
{ 
     SqlCommand check_Member = new SqlCommand("SELECT * FROM Members WHERE MembershipID = FirstName AND LastName = @Txtnput", DBConnection); 
     check_Member.Parameters.AddWithValue("@Txtnput", txtMembershipid.Text); 
     int MemberExist = (int)check_Member.ExecuteScalar(); 
} 

UPDATE: 能否請您與表名以及更新的架構名稱查詢。

如:SqlCommand check_Member = new SqlCommand("SELECT * FROM dbo.Members WHERE MembershipID = FirstName AND LastName = @Txtnput", DBConnection);

或者更具體MyDatabase.dbo.Members

+0

它據我所知:/ – user4814432

+0

ok ..你可以嘗試新的更新在我的答案。 – NCA

0

試試這個連接字符串,並檢查

SqlConnection DBConnection = new SqlConnection(@"Data Source=(LocalDB)\v11.0; 
AttachDbFilename=E:\DS\Prac5\Part1\App_Data\Database.mdf;Integrated Security=True") 

去掉「中沒有必要,因爲之間有開始也@改變MyDatabase.mdf到Database.mdf,因爲在圖片中它是Database.mdf

+0

@ user4814432檢查這一點 – Sachu

相關問題