SQL表不存在

时间:2015-08-14 11:00:53

标签: c# sql-server ado.net

我的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对象资源管理器中看到它)

问题出在哪里?

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

您需要进行更多调查以了解原因是什么,但作为一个完整的猜测,您的生产服务器同时拥有RegUsers和数据库?

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

答案 2 :(得分:0)

从我的创建脚本中可以看出,您的表名是RegUzivatele,而您正在尝试插入表名RegUsers,这当然不存在。< / p>