将数据库值加载到数组中

时间:2014-12-10 10:46:36

标签: c# asp.net sql-server arrays

所以我得到了一个应用程序全部设置,多个命令工作出色,但我坚持一个主要问题。我想从SQL表加载值 - SQL连接字符串的数据(serveradress / databasename / UID / password)。它的连接工作,我可以检索数据。我想要实现的是,有一些数据用于serveradress / databasename / UID / password(总共4个数组),它将数据加载到其中。 SQL中还有一个名称和DatabaseID。所以我可以使用INT DatabaseID并使用select查询来选择databaseID为5的行,然后从该数组中获取信息。我已经可以将它们保存到字符串变量,但我希望它在启动应用程序时将所有信息加载到数组,以便可以关闭连接。然后,databaseID等于我用来选择数组数据的数字。

2 个答案:

答案 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查询所有信息,而不是将信息加载到不同的数组中。

我希望这会有所启发。

正如艾伦解释和演示的那样。