首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#程序中使用的SQL语句不会识别数据库"System.Data.SqlClient.SqlException (0x80131904):显示无效的对象名‘CDA’“。

C#程序中使用的SQL语句不会识别数据库"System.Data.SqlClient.SqlException (0x80131904):显示无效的对象名‘CDA’“。
EN

Stack Overflow用户
提问于 2020-01-16 12:32:08
回答 3查看 63关注 0票数 1

我正在开发一个基本的C#应用程序,它将读取文件夹名并将它们插入到DB中。

不管怎么说

System.Data.SqlClient.SqlException (0x80131904):无效的对象名'CDA‘。

(CDA是我数据库的名称)

这是有争议的代码

代码语言:javascript
复制
 static void InsertSql(Guid folderGuid, string folderName)
        {
            try
            {
                // Build connection string
                SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder
                {
                    DataSource = "WIN10-LAP-HJP",
                    UserID = "sa",
                    Password = "Mypassword123",
                    InitialCatalog = "master"
                };

                // Connect to SQL
                Console.Write("Connecting to SQL Server ... ");
                using (SqlConnection connection = new SqlConnection(builder.ConnectionString))
                {

                    Console.WriteLine("Done.");
                    string query = "INSERT INTO CDA ( FolderName) VALUES (@FolderName )";

                    using (SqlCommand command = new SqlCommand(query, connection))
                    {
                        command.Parameters.Add("@FolderID", SqlDbType.UniqueIdentifier).Value = folderGuid;
                        command.Parameters.Add("@FolderName", SqlDbType.NVarChar ).Value = folderName;



                        connection.Open();
                        var result = command.ExecuteNonQuery();

                        // Check Error
                        if (result < 0)
                            Console.WriteLine("Error inserting data into Database!");
                    }
                }
            }

            catch (SqlException e)
            {
                Console.WriteLine(e.ToString());
            }
        }

这是我的mssql的图像。

我的数据库连接字符串似乎工作正常。

就像我得到的

代码语言:javascript
复制
connecting to sql server...Done

然后它会抛出错误。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-01-16 12:41:09

将SqlConnectionStringBuilder中数据库的名称从master更正为CDA

代码语言:javascript
复制
InitialCatalog = "CDA"

更改insert语句,以便它反映要保存数据的实际表:

代码语言:javascript
复制
string query = "INSERT INTO dbo.MyTableTableNameGoesHere ( FolderName) VALUES (@FolderName )";
票数 1
EN

Stack Overflow用户

发布于 2020-01-16 12:41:08

您正在连接整个数据库,并且没有指定应该在数据库中使用哪个表。在考虑你提供的信息时。

票数 1
EN

Stack Overflow用户

发布于 2020-01-16 12:49:54

正如您所说的,CDA是数据库名称,因此下面的代码应该用表名进行更改。

代码语言:javascript
复制
INSERT INTO CDA (FolderName) VALUES (@FolderName) //Change CDA to table name.

它应该是

代码语言:javascript
复制
INSERT INTO [CDA].[dbo].[FolderInfo] VALUES (@FolderName)

除了上述两处更正外,您还需要更改连接字符串。

代码语言:javascript
复制
InitialCatalog = "master" 

应该是

代码语言:javascript
复制
InitialCatalog = "CDA"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59769791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档