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。 以下是您需要检查的事项。

  1. 连接字符串(数据源名称、数据库名称)
  2. 您的 table.
  3. 的架构

如果我没理解错的话,您是在数据库 dbo.RegUsers 中执行插入查询,它给出了错误对象名称无效 'dbo.RegUsers'?这只是意味着 table 找不到名为 "RegUsers " 的对象。这有几个可能的原因:

对象不存在,可能是因为模式 and/or 数据库不存在 对象存在,但数据库区分大小写且部分名称与您代码中的名称不匹配

您需要进行更多调查以找出您的情况的原因,但作为一个完整的猜测,您的生产服务器同时具有 RegUsers 和数据库?

最后,在发帖提问时请始终包含您的 SQL 服务器版本 (2000/2005/2008) 和版本(Express、Standard、Enterprise);在谈论模式和权限时,它们可能非常重要,因为功能和行为可能不同。

据我从你的创建脚本中看到的,你的 table 的名字是 RegUzivatele,而你试图插入一个 table 的名字 RegUsers,这当然不是'不存在。