所以我得到了一个应用程序全部设置,多个命令工作出色,但我坚持一个主要问题。我想从SQL表加载值 - SQL连接字符串的数据(serveradress / databasename / UID / password)。它的连接工作,我可以检索数据。我想要实现的是,有一些数据用于serveradress / databasename / UID / password(总共4个数组),它将数据加载到其中。 SQL中还有一个名称和DatabaseID。所以我可以使用INT DatabaseID并使用select查询来选择databaseID为5的行,然后从该数组中获取信息。我已经可以将它们保存到字符串变量,但我希望它在启动应用程序时将所有信息加载到数组,以便可以关闭连接。然后,databaseID等于我用来选择数组数据的数字。
答案 0 :(得分:3)
我建议您将数据存储在对象列表中,而不是使用多个数组。例如,您可以为连接信息定义一个类,如下所示:
public class ConnInfo
{
public string ServerAddress { get; set; }
public string DatabaseName { get; set; }
public string UserId { get; set; }
public string Password { get; set; }
}
然后你可以列出这些:
var connections = new List<ConnInfo>();
从数据库查询中填充它:
foreach (DataRow row in table.Rows)
{
connections.Add(new ConnInfo
{
ServerAddress = (string)row["ServerAddress"],
DatabaseName = (string)row["DatabaseName"],
// etc.
});
}
完成此操作后,您可以按如下方式访问连接信息:
var address = connections[2].ServerAddress;
如果您不确定如何创建“表格”,请参阅上文,例如:
var cmd = new SqlCommand("SELECT * FROM ConnectionInfo", myConnection);
var rdr = cmd.ExecuteReader();
var table = new DataTable();
table.Load(rdr);
rdr.Close();
如果您不想为此创建类,可以直接使用此DataTable,并直接使用它来访问信息。
答案 1 :(得分:-1)
我对你想要达到的目标感到有点失落。
为什么你有4个阵列?您可以从SQL表中返回信息并将其存储在DataTable中,这样您就可以在一个中心表中使用LINQ查询所有信息,而不是将信息加载到不同的数组中。
我希望这会有所启发。
正如艾伦解释和演示的那样。