我对编程世界非常陌生(很抱歉,如果这个问题已被回答过很多次,至少我没有从互联网上获得任何线索),并且我最近正在尝试构建一个C锋利的应用程序。该exe文件将在另一个程序中调用,并且在调用时,该程序将为c Sharp exe应用程序传递一个sql连接字符串值。我的问题是如何使应用程序获得价值。
连接字符串应如下所示
“Provider=SQLOLEDB.1;Password=xxxxxxxx;Persist Security Info=True;User
ID=xxxxxxxx;Initial Catalog=ATTACH;Data Source=LNGSEAL136504A;
Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation
ID=LNGSEAL136504A;Use Encryption for Data=False;Tag with column collation when
possible=False”
Run Code Online (Sandbox Code Playgroud)
我写的是:这是我的代码:类Program {静态void Main(string [] args){Console.WriteLine(“正在运行!”); Console.ReadKey(); 尝试{
int Len;
string cnn = null;
Len = args.Length;
for (int i = 0; i < args.Length; i++)
{
cnn = cnn + " " + args[i];
}
Console.WriteLine(cnn);
Console.WriteLine(Len);
Console.ReadKey();
ADODB.Connection mycnn = new ADODB.Connection();
mycnn.Open(cnn);
ADODB.Recordset rs = new ADODB.Recordset();
rs.Open("sql statements", mycnn);
mycnn.Close();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
但它引发我“无法转换com对象错误”。任何的想法?请指教。
[解决了]
我使用oledbconnection而不是adodb,并且它可以正常工作。感谢大家的帮助。
您可以通过命令行参数传递连接字符串(使用源应用程序用来调用可执行文件的任何技术),然后可以args在Main(string[] args)接收可执行文件的函数中从数组中检索它们。
例如,在接收端:
class TestClass
{
static void Main(string[] args)
{
// avoiding empty/null checks for simplicity
string connectionString = args[n]; // where "n" is index value of your
// connection string argument
DoWork(connectionString);
}
}
Run Code Online (Sandbox Code Playgroud)
考虑到这一点,可能会有更好的方法来满足您的要求。如果您向我们详细介绍了您的项目,我们也许可以提供替代建议。
| 归档时间: |
|
| 查看次数: |
2463 次 |
| 最近记录: |