簡體   English   中英

C#和T-SQL命令行實用程序

[英]C# and T-SQL command-line Utility

組,

第1部分:我目前正在使用命令行工具,該工具可以使用args並更新本地數據庫。 我唯一的問題是一旦我建立了“數據連接”,如何將這些參數用於查詢和搜索。

例如:〜// arrInput.exe“ parm1”“ pram2”“ pram3”

第2部分:我想在命令行中使用args並將其用作“存儲的proc”的輸入參數。 一旦完成執行...。使用相同的輸入創建一個日志文件。

例如輸出文件:

mm-dd-yyyy hh:mm:ss-pram1,pram2,...

pram1:更新/失敗

pram2:更新/失敗

謝謝,

乍得

就生成輸出文件而言,這是SQL的事情了,那是相當基本的,因此我將這些代碼留給您。 還有其他執行查詢的選項,具體取決於您實現中的需求。

編輯您可以在尋找的內容上更具體一些嗎? 我想也要加上寫日志的代碼,然后寫出所有內容。

編輯2對於accdb文件,您將需要使用OleDB連接而不是SQL連接,如下圖所示。 我已經編輯了下面的代碼以使用accdb文件。 我對此不太熟悉,所以我不能保證它會100%工作,但唯一的問題應該是語法。 順便說一句,所有輸入都沒有被凈化,最好對輸入進行參數化,但是由於聽起來您自己在運行,所以就沒有必要了。 如果這回答了您的問題,請標記為已接受:)

using System.Data.OleDB;
using System.IO;

static int Main(string[] args)
{
    //Make a list to hold your params
    List<string> paramList = new List<string>();

    //Populate the list based on args
    for (int i = 0; i < args.Length(); i++) 
    {
        paramList.Add(args[i]);
    }

    //Create a new oledb connection
    string path = "c:\\yourfilepath\\file.accdb";
    OleDbConnection myConnection = 
        new SqlConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" +
        path + "';");
    myConnection.Open();

    //Run the stored proc on each param and output result to file
    using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"filepath\filename"))
    {
        foreach (string param in paramList)
        {
            //myCommand.CommandText is the query you want to run against your database
            //i.e. the stored proc
            OleDbCommand myCommand = myConnection.CreateCommand();
            myCommand.CommandText = "stored_proc " + param;
            OleDbDataReader myReader = myCommand.ExecuteReader();
            if (myReader.HasRows)
            {
                file.WriteLine("pass: " + param);
            } 
            else 
            {
                file.WriteLine("fail: " + param);
            }
            myReader.Close();
        }
    }

    myConnection.Close();
}

暫無
暫無

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

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