组,
第1部分: 我目前正在开发一个命令行实用程序,它可以获取args并更新本地数据库。我唯一的问题是,一旦我建立了“数据连接”..我如何使用这些args进行查询和搜索。
例如: 〜// arrInput.exe“parm1”“pram2”“pram3”
第2部分: 我想接受命令行参数并将它们用作“存储过程”的输入参数。一旦完成执行....使用相同的输入包装日志文件。
例如输出文件:
mm-dd-yyyy hh:mm:ss - pram1,pram2,...
pram1:更新/失败
pram2:更新/失败
谢谢,
乍得
答案 0 :(得分:2)
这是SQL的结束,就制作输出文件而言,这非常基本,所以我会把这些代码留给你。执行查询还有其他选项,具体取决于您在实现中需要的内容。
编辑您可以更具体地了解您的需求吗?我会假设添加用于创建日志的代码并写出所有内容。
edit 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();
}