簡體   English   中英

通過c#ASP.Net中的網頁運行TSQLScripts

[英]Run TSQLScripts via the Web Page in c# ASP.Net

我正在嘗試構建可用於在線運行TSQL腳本的網頁。

我的數據庫有很多數據庫,我正在使用系統管理員帳戶來執行這些腳本。

建立網頁后,

  1. 我可以在所有數據庫中成功運行簡單的CRUD語句
  2. 我只能為默認的連接數據庫MyDB1運行DML語句。
  3. 每當我創建新對象時,它就位於MyDB1中。 但是我想在另一個數據庫中運行/創建對象。

我嘗試運行以下命令,該命令非常簡單,並且在SSMS中運行良好。

USE MyDB2
GO

CREATE PROCEDURE [dbo].MyProc

AS
BEGIN
    INSERT INTO
        dbo.Table1
        (
        FieldA
        , FieldB
        , FieldC
        )
    VALUES
        (
        'AAA'
        , 'BBB'
        , 'CCC'
        )

END

但是我收到錯誤消息:

'CREATE/ALTER PROCEDURE' must be the first statement in a query batch.

我的執行發布腳本的C#代碼在這里:

DataTable dt = new DataTable();
            try
            {
                using (SqlConnection cn = new SqlConnection("MyConnString"))
                {
                    cn.Open();
                    SqlCommand cmd = new SqlCommand(sql, cn);

                    using (SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
                    {
                        if (dr.HasRows)
                        {
                            dt.Load(dr);
                        }

                        dr.Close();
                    }

                    cn.Close();
                }
            }
            catch (Exception ex)
            {
                //Log Error
            }

如果我刪除了USE語句,就可以了,但是它在默認數據庫MyDB1中創建了對象。 如何調整代碼以在MyDB2中運行它?

USE是SSMS命令,而不是SQL語句。

更改您的連接字符串以指定適當的數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM