将数据表转换为哈希表或sqldatareader为哈希表的简便方法

amb*_*mby 9 c# sql jquery sql-server-2008

有没有简单的方法将a转换DataTable为a HashTableSQLDataReadera HashTable?我必须通过javascriptserializer解析它.我使用的代码有一些问题:

try
{
    using (SqlConnection conn = new SqlConnection(ConnectionString))
    {
        using (SqlCommand cmd = new SqlCommand(query, conn))
        {
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            dt.Load(dr);
        }
    }

    Hashtable sendData = new Hashtable();

    foreach (DataRow drIn in dt.Rows)
    {

        sendData.Add(drIn["orderNumber"].ToString(), drIn["customerName"].ToString());

    }

    sendData.Add("orderNum", order);
    JavaScriptSerializer jss = new JavaScriptSerializer();
    string output = jss.Serialize(sendData);
    return output;
}
catch (Exception ex)
{
    return ex.Message + "-" + ex.StackTrace;
}
Run Code Online (Sandbox Code Playgroud)

当从数据库中的一个表查询时,它给出了正确的结果,但是从另一个表中查询它有问题.

有没有其他方法可以做到这一点?

Shi*_*min -1

public static Hashtable Fn_ConvertDataTableToHashTable(DataTable dtTable, int iRow)
{
        Hashtable hshTable = new Hashtable();

        if (CommonUtil.Fn_CheckDatatableHasValue(dtTable))
        {
            foreach (DataColumn column in dtTable.Columns)
            {

                hshTable.Add(column.ColumnName, dtTable.Rows[iRow][column.ColumnName].ToString());
            }
        }

        return hshTable;
}
Run Code Online (Sandbox Code Playgroud)