如何从DataColumn转换数据类型?

时间:2014-04-25 11:21:53

标签: c# sql-server wpf type-conversion datacolumn

我有以下代码,想要了解如何让DataColumn行[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();
        }
    }
}

3 个答案:

答案 0 :(得分:0)

尝试代替

pPrice = row[col].ToString();

float value = (float)row[col];

您明确地将值设置为字符串,因此您无法为其指定浮点数。

另外,要保持列是一个浮点而不是双/小数,一个简单的方法就知道了

Type t = row[col].GetType();
string typeName = t.Name;

答案 1 :(得分:0)

Convert.ToSingle()可用于浮动转换。

MSDN Reference 1

MSDN Reference 2

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

float pPrice = Single.Parse(row[col].ToString());

答案 2 :(得分:0)

如果你想从数据表获取/获取浮点列的列表,那么你必须遍历每个数据表列的循环并检查下面的代码。

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

}