簡體   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