C# SQL Server数据库中的对象名称无效?
我得到了这个错误: 无效的对象名称“成员” 在这一行:C# SQL Server数据库中的对象名称无效?,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我得到了这个错误: 无效的对象名称“成员” 在这一行: int MemberExist = (int)check_Member.ExecuteScalar(); 对于我当前的DB,它看起来是这样的:为什么不执行它 代码: 看起来您必须将查询更改为 "SELECT count(*) FROM Members WHERE MembershipID = FirstName AND LastName = @Txtnput" 因为executescalar要求从查询返回一个值。连接字符串中似乎有错误
int MemberExist = (int)check_Member.ExecuteScalar();
对于我当前的DB,它看起来是这样的:为什么不执行它
代码:
看起来您必须将查询更改为
"SELECT count(*) FROM Members WHERE MembershipID = FirstName AND LastName = @Txtnput"
因为
executescalar
要求从查询返回一个值。连接字符串中似乎有错误
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"
确保您的表名为Members。您可以在模型或数据库中进行检查
bool IsMemberExist;
object MembershipId = check_Member.ExecuteScalar();
if(MembershipId != null )
{
IsMemberExist = true;
//Do other things here. //Convert.ToInt32(MembershipId)
}
请确保您的数据库
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();
}
更新:
请用模式名和表名一起更新查询
例如:SqlCommand check\u Member=newsqlcommand(“从dbo.Members中选择*,其中MembershipID=FirstName,LastName=@Txtnput”,DBConnection)代码>
或更具体地说MyDatabase.dbo.Members
尝试此连接字符串并检查
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.mdfHmm我刚刚尝试过,但它仍然给了我相同的异常。”无效的对象名称“Members”。“@user4814432检查此项不幸的是,从我发布的imgur链接中可以看出,我的表绝对是正确的名称。啊,是的,谢谢你,我的连接字符串不正确。据我所知,是这样的:/change Mydatabase.mdf to Database.mdf and remove”中间检查我的回答
SqlConnection DBConnection = new SqlConnection(@"Data Source=(LocalDB)\v11.0;
AttachDbFilename=E:\DS\Prac5\Part1\App_Data\Database.mdf;Integrated Security=True")