0

我有以下代码,想知道如何让 DataColumn row[col] 浮动?

queryString = "SELECT Price FROM sampledata";

SqlCommand cmd = new SqlCommand(queryString, connection);

SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable("SampleTable");

sda.Fill(dt);

foreach (DataRow row in dt.Rows)
{
    // this value should become float pPrice = 0;
    string pPrice = "";

    foreach (DataColumn col in dt.Columns)
    {
        if (col.ToString().Trim() == "Price")
        {
            // pPrice = float.Parse(row[col].ToString()) does not work
            // table column from sampledata is float
            pPrice = row[col].ToString();
        }
    }
}
4

3 回答 3

0

如果要从数据表中获取/获取浮点列的列表,则必须遍历每个数据表列的循环并检查以下代码。

if(dt.Columns[0].GetType() == float) {

}

于 2014-04-25T11:35:56.177 回答
0

尝试代替

pPrice = row[col].ToString();

这个

float value = (float)row[col];

您正在将您的值显式设置为字符串,因此您不能为其分配浮点数。

此外,请确保该列是浮点数而不是双精度/十进制,一个简单的方法是

Type t = row[col].GetType();
string typeName = t.Name;
于 2014-04-25T11:28:46.100 回答
0

Convert.ToSingle()可用于浮点数的转换。

MSDN 参考 1

MSDN 参考资料 2

float pPrice = Convert.ToSingle(row[col]);

或者

float pPrice = Single.Parse(row[col].ToString());
于 2014-04-25T11:29:07.630 回答