双精度和字符串的 C# 二维数组
本文关键字:二维数组 字符串 双精度 | 更新日期: 2023-09-27 18:33:31
我正在尝试将相当大的SQL查询放入C#中的数组中。但是,查询中的值由双精度和字符串组成。我该如何解释?因为,使用以下方法(只是将所有内容作为字符串放入)在我的工作表中不起作用,因为数字被格式化为文本。
String sql = "SELECT Ticker, Cusip, Shares, value, Price, " +....
string[,] data = new string[5000, 10]; //multi-dimentional array
string connectionString = Database.ConnectionString();
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand(sql, connection))
{
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
String ticker = (string)reader["ActTicker"];
String cusip = (string)reader["Cusip9"];
double shares = (double)reader["shares"];
double price = (double)reader["price"];
double value = (double)reader["value"];
data[row, 0] = ticker;
data[row, 1] = "=iferror(bdp('"" + cusip + " cusip'", '"GICS_SECTOR_NAME'"),0)";
data[row, 2] = "=iferror(bdp('"" + cusip + " cusip'", '"SECURITY_TYP'"),0)";
data[row, 3] = "=iferror(bdp('"" + cusip + " cusip'", '"CUR_MKT_CAP'"),0)";
data[row, 4] = "=iferror(bdp('"" + cusip + " cusip'", '"VOLUME_AVG_10D'"),0)";
data[row, 5] = shares.ToString();
data[row, 6] = value.ToString();
data[row, 7] = price.ToString();
data[row, 8] = "=iferror(bdp('"" + cusip + " cusip'", '"last price'"),0)";
}
}
}
您可以使用 DataTable,或者如果您想要更轻量级和强类型的东西,请创建您自己的自定义数据结构。
public struct MyCustomData
{
String ticker;
String cusip;
double shares;
double price;
double value;
}
从中创建一个数组
MyCustomData[] data = new MyCustomData[5000];
.
.
.
data[row].ticker = ticker;
data[row].cusip = "=iferror(bdp('"" + cusip + " cusip'", '"GICS_SECTOR_NAME'"),0)";
.
.
.
public SqlConnection myConnection = new SqlConnection("");
public DataTable Select(string sTSQL)
{
DataTable dt = new DataTable();
try
{
myConnection.Open();
SqlDataReader myReader = null;
SqlCommand myCommand = new SqlCommand(sTSQL, myConnection);
myReader = myCommand.ExecuteReader();
dt.Load(myReader);
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
dt = null;
}
finally
{
try
{
myConnection.Close();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
return dt;
}