【问题标题】:How to convert data type from DataColumn?如何从 DataColumn 转换数据类型?
【发布时间】:2014-06-11 01:54:40
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    尝试代替

    pPrice = row[col].ToString();
    

    这个

    float value = (float)row[col];
    

    您将值显式设置为字符串,因此无法为其分配浮点数。

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

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

    【讨论】:

      【解决方案2】:

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

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

      }

      【讨论】:

        【解决方案3】:

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

        MSDN Reference 1

        MSDN Reference 2

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

        或者

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-10-26
          • 2013-10-12
          • 2020-10-22
          • 2014-10-09
          • 2016-06-25
          • 2018-04-11
          • 1970-01-01
          相关资源
          最近更新 更多