2010-07-10 68 views
-1

對於我的數據庫中創建一個新的查詢和使用SQL Server Management Studio Express的2005年寫道在SQL Server Management Studio Express中如何使用它?

select * from dbname 

救了它的名字SQLQuery1.sql在桌面上。

現在我想從C#代碼中調用此查詢,當單擊ASP.NET按鈕並在GridView中顯示結果時。

如何調用查詢?我可以告訴Visual Studio 2008請執行存儲在'sqlquery1.sql'中的查詢嗎?

我在哪裏存儲結果,以便我可以將它們綁定到顯示控件(如gridview)或遍歷數據?

這是C#,ASP.NET網站時,Visual Studio 2008,並使用SQL Server 2005 Express的

+0

如果有人發現這個答案有幫助請投票0,一些答案是在我的帖子後! :-) – user287745 2010-07-11 04:59:18

回答

4

您不能只是從ASP.NET網站執行存儲在計算機桌面上的SQL腳本。

您可以:

  • 把您的查詢,在SQL Server存儲過程是這樣的:

    CREATE PROCEDURE dbo.proc_MyQuery 
    AS 
        SELECT (list of columns) 
        FROM dbo.MyTable 
        WHERE (condition) 
    

    當你做到這一點,你可以創建你的C#代碼SqlCommand並調用該存儲過程並返回結果。

或:

  • 你可以直接從你的C#代碼創建一個SqlConnectionSqlCommand對象,運行SQL語句執行查詢。

這些都是絕對基本的ADO.NET功能 - 你應該在網上找到大量的學習資源。

例如:

以往的方式你去哪個喲你基本上需要有一個SqlConnection到你的數據庫,然後SqlCommand來執行查詢。如果你想存儲數據,所以你可以將它綁定到一個Gridview並在代碼中導航它,你可能想要將它存儲在DataTable。所以,你的代碼會是這個樣子:

DataTable resultTable = new DataTable(); 

using(SqlConnection con = new SqlConnection("your connection string here")) 
{ 
    string sqlStmt = "SELECT (columns) FROM dbo.YourTable WHERE (condition)"; 

    using(SqlCommand cmd = new SqlCommand(sqlStmt, con)) 
    { 
     SqlDataAdapter dap = new SqlDataAdapter(cmd); 
     dap.Fill(resultTable); 
    } 
} 

,然後綁定到GridView,你會使用類似:

myGridView.DataSource = resultTable; 
myGridView.DataBind(); 

和導航DataTable,你可以通過它.Rows()步驟數據行的集合。

1

在你的服務器端事件處理程序,您將需要從打開的文件數據庫是在同一臺計算機上桌面,讀入SQL,然後使用SQL對數據綁定網格。

這取決於網站代碼在讀取桌面的情況下運行的身份。默認情況下,它不會讓您需要提供該身份(NETWORK_SERVICE?)權限。這可能會帶來可怕的安全漏洞。

你最好將SQL移動到更容易訪問的地方,如web.config或網站目錄中的文件。

相關問題