SQL table 不存在
SQL table doesn't exist
我的 ADO.NET 查询有问题。我成功创建数据库。此数据库中只有一个 table (RegUsers
)(我只是用 ADO.NET 测试工作)。编辑:数据库基于 Microsoft Azure
创建我的 table:
CREATE TABLE [dbo].[RegUsers] (
[Id] INT NOT NULL,
[Login] VARCHAR (50) NOT NULL,
[Password] VARCHAR (50) NOT NULL,
[Name] VARCHAR (50) NOT NULL,
[Surname] VARCHAR (50) NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC));
我创建了 SqlConnecion
并成功连接到数据库(如果我能打开连接我希望能成功)然后我想 INSERT
数据到这个 table有了这个:
SqlConnectionStringBuilder csBuilder;
csBuilder = new SqlConnectionStringBuilder();
csBuilder.DataSource = "********.database.windows.net";
csBuilder.Encrypt = true;
csBuilder.TrustServerCertificate = false;
csBuilder.UserID = "************".ToString();
csBuilder.Password = "********".ToString();
csBuilder.ConnectTimeout = 30
SqlConnection con = new SqlConnection(csBuilder.ToString());
con.Open();
string PlneniDaty =
@"INSERT INTO [dbo].[RegUsers] (Login,Password,Name,Surname)"+
@" VALUES ('MyLogin','MyPassword','Pavel','Novak')";
SqlCommand NaplDaty = new SqlCommand(PlneniDaty, con);
NaplDaty.ExecuteNonQuery();
con.Close();
每当我执行这个命令时它显示错误:
Invalid object name 'dbo.RegUsers'
(是的,table 已成功创建,我可以在 SQL 服务器对象资源管理器中看到它)
问题出在哪里?
您的整个代码看起来 good.you 可以 post 您的 connectionString。
以下是您需要检查的事项。
- 连接字符串(数据源名称、数据库名称)
- 您的 table.
的架构
如果我没理解错的话,您是在数据库 dbo.RegUsers 中执行插入查询,它给出了错误对象名称无效 'dbo.RegUsers'?这只是意味着 table 找不到名为 "RegUsers " 的对象。这有几个可能的原因:
对象不存在,可能是因为模式 and/or 数据库不存在
对象存在,但数据库区分大小写且部分名称与您代码中的名称不匹配
您需要进行更多调查以找出您的情况的原因,但作为一个完整的猜测,您的生产服务器同时具有 RegUsers 和数据库?
最后,在发帖提问时请始终包含您的 SQL 服务器版本 (2000/2005/2008) 和版本(Express、Standard、Enterprise);在谈论模式和权限时,它们可能非常重要,因为功能和行为可能不同。
据我从你的创建脚本中看到的,你的 table 的名字是 RegUzivatele,而你试图插入一个 table 的名字 RegUsers,这当然不是'不存在。
我的 ADO.NET 查询有问题。我成功创建数据库。此数据库中只有一个 table (RegUsers
)(我只是用 ADO.NET 测试工作)。编辑:数据库基于 Microsoft Azure
创建我的 table:
CREATE TABLE [dbo].[RegUsers] (
[Id] INT NOT NULL,
[Login] VARCHAR (50) NOT NULL,
[Password] VARCHAR (50) NOT NULL,
[Name] VARCHAR (50) NOT NULL,
[Surname] VARCHAR (50) NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC));
我创建了 SqlConnecion
并成功连接到数据库(如果我能打开连接我希望能成功)然后我想 INSERT
数据到这个 table有了这个:
SqlConnectionStringBuilder csBuilder;
csBuilder = new SqlConnectionStringBuilder();
csBuilder.DataSource = "********.database.windows.net";
csBuilder.Encrypt = true;
csBuilder.TrustServerCertificate = false;
csBuilder.UserID = "************".ToString();
csBuilder.Password = "********".ToString();
csBuilder.ConnectTimeout = 30
SqlConnection con = new SqlConnection(csBuilder.ToString());
con.Open();
string PlneniDaty =
@"INSERT INTO [dbo].[RegUsers] (Login,Password,Name,Surname)"+
@" VALUES ('MyLogin','MyPassword','Pavel','Novak')";
SqlCommand NaplDaty = new SqlCommand(PlneniDaty, con);
NaplDaty.ExecuteNonQuery();
con.Close();
每当我执行这个命令时它显示错误:
Invalid object name 'dbo.RegUsers'
(是的,table 已成功创建,我可以在 SQL 服务器对象资源管理器中看到它)
问题出在哪里?
您的整个代码看起来 good.you 可以 post 您的 connectionString。 以下是您需要检查的事项。
- 连接字符串(数据源名称、数据库名称)
- 您的 table. 的架构
如果我没理解错的话,您是在数据库 dbo.RegUsers 中执行插入查询,它给出了错误对象名称无效 'dbo.RegUsers'?这只是意味着 table 找不到名为 "RegUsers " 的对象。这有几个可能的原因:
对象不存在,可能是因为模式 and/or 数据库不存在 对象存在,但数据库区分大小写且部分名称与您代码中的名称不匹配
您需要进行更多调查以找出您的情况的原因,但作为一个完整的猜测,您的生产服务器同时具有 RegUsers 和数据库?
最后,在发帖提问时请始终包含您的 SQL 服务器版本 (2000/2005/2008) 和版本(Express、Standard、Enterprise);在谈论模式和权限时,它们可能非常重要,因为功能和行为可能不同。
据我从你的创建脚本中看到的,你的 table 的名字是 RegUzivatele,而你试图插入一个 table 的名字 RegUsers,这当然不是'不存在。