我正在开发一个基本的C#应用程序,它将读取文件夹名并将它们插入到DB中。
不管怎么说
System.Data.SqlClient.SqlException (0x80131904):无效的对象名'CDA‘。
(CDA是我数据库的名称)
这是有争议的代码
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的图像。

我的数据库连接字符串似乎工作正常。
就像我得到的
connecting to sql server...Done然后它会抛出错误。
发布于 2020-01-16 12:41:09
将SqlConnectionStringBuilder中数据库的名称从master更正为CDA
InitialCatalog = "CDA"更改insert语句,以便它反映要保存数据的实际表:
string query = "INSERT INTO dbo.MyTableTableNameGoesHere ( FolderName) VALUES (@FolderName )";发布于 2020-01-16 12:41:08
您正在连接整个数据库,并且没有指定应该在数据库中使用哪个表。在考虑你提供的信息时。
发布于 2020-01-16 12:49:54
正如您所说的,CDA是数据库名称,因此下面的代码应该用表名进行更改。
INSERT INTO CDA (FolderName) VALUES (@FolderName) //Change CDA to table name.它应该是
INSERT INTO [CDA].[dbo].[FolderInfo] VALUES (@FolderName)除了上述两处更正外,您还需要更改连接字符串。
InitialCatalog = "master" 应该是
InitialCatalog = "CDA"https://stackoverflow.com/questions/59769791
复制相似问题