繁体   English   中英

SQL表不存在

[英]SQL table doesn't exist

我对ADO.NET查询有问题。 我成功创建数据库。 该数据库中只有一个表( RegUsers )(我正在测试ADO.NET的工作)。 编辑:Databese基于Microsoft Azure

创建我的表:

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数据到这个表如下:

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();

每当我执行此命令时,它将显示错误:

无效的对象名称“ dbo.RegUsers”

(是的,表已成功创建,我可以在SQL Server对象资源管理器中看到它)

问题出在哪儿?

您的整个代码看起来不错。您可以发布connectionString。 接下来的事情你需要检查。

  1. 连接字符串(数据源名称,数据库名称)
  2. 表的架构。

如果我理解正确,则您正在数据库dbo.RegUsers中执行插入查询,并给出错误无效的对象名称'dbo.RegUsers'? 这仅表示表无法找到名为“ RegUsers”的对象。 可能有以下几种原因:

该对象不存在,可能是因为架构和/或数据库不存在。该对象存在,但是数据库区分大小写,并且名称的某些部分与代码中的名称不匹配

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

最后,在发布问题时,请始终包括您的SQL Server版本(2000/2005/2008)和版本(Express,Standard,Enterprise); 在谈论架构和权限时,它们可能非常重要,因为功能和行为可能有所不同。

据我在您的创建脚本中看到的那样,表的名称是RegUzivatele,而您试图插入到表名RegUsers时,这当然是不存在的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM