【问题标题】:Target database schema could not be retrieved - Visual Studio Error无法检索目标数据库架构 - Visual Studio 错误
【发布时间】:2020-05-06 04:39:16
【问题描述】:

我是 Visual Studio C# 编程新手。我一直在尝试使用存储过程创建一个表。当我尝试更新表时,出现错误。

存储过程脚本如下:

CREATE TABLE [dbo].[Table]
(
[Id] INT NOT NULL PRIMARY KEY,
[Error] VARCHAR(30) NULL
)

GO

CREATE PROCEDURE [dbo].[InsertLog]
(
@error varchar(30)
)

AS

INSERT INTO [dbo].[Table]
(
[Error]
)
VALUES
(
@error
)

GO

我的连接字符串如下:

connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database1.mdf;Persist Security Info=true;Integrated Security=True;"

我更新表格时遇到的错误如下:

我正在使用 LocalDB,但我没有登录凭据。请帮我解决错误。

注意:我还解决了其他 StackOverflow 问题,但没有任何帮助。

谢谢

【问题讨论】:

    标签: c# sql-server visual-studio visual-studio-2010 stored-procedures


    【解决方案1】:

    我觉得你可以参考下面的步骤来执行存储过程。

    首先,您可以创建如下图所示的表格。在这里我想提一下你

    如果你想使用你提供的存储过程,需要使用自动增量。

    另外,你不能在这里创建存储过程。

    其次,单击数据库->选择可编程性->选择存储过程->右键单击添加新过程,如下所示:

    CREATE PROCEDURE [dbo].[InsertLog]
    (
    @error varchar(30)
    )
    
    AS
    
    INSERT INTO [dbo].[Newtable]
    (
    [Error]
    )
    VALUES
    (
    @error
    )
    

    最后,您可以使用以下代码在c#中调用存储过程。

            string connectionstring = @"Connectionstring";
            SqlConnection connection = new SqlConnection(connectionstring);
            connection.Open();
            SqlCommand command = new SqlCommand("InsertLog",connection);
            command.CommandType = CommandType.StoredProcedure;
            command.Parameters.AddWithValue("@error", textBox1.Text);
            command.ExecuteNonQuery();
            connection.Close();
    

    【讨论】:

    • 我正在使用 NLog 将错误消息记录到数据库。所以,就我而言,我不需要使用AddWithValue 方法,对吗? NLoglogger.Error() 方法。我将如何在这种情况下使用它?
    • 如果你想知道如何使用 NLog 将错误记录到数据库中,你可以看到How do I configure NLog to write to a database?
    【解决方案2】:

    你是如何提到你的连接字符串的?能否请您也补充一下?

    【讨论】:

    猜你喜欢
    • 2019-03-07
    • 1970-01-01
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 2014-10-19
    • 1970-01-01
    • 2023-02-14
    相关资源
    最近更新 更多