2015-05-13 85 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

相关问题