【问题标题】:How to read a float value from Sql database using datareader?如何使用 datareader 从 Sql 数据库中读取浮点值?
【发布时间】:2018-02-26 21:23:07
【问题描述】:

我正在尝试读取包含整数和浮点值的 sql 数据库表。我在读取浮点值时遇到问题。我试图解析,但我得到了错误。以下是我的代码:

 private void PopulateFields()
    {
        using (SqlConnection con = new SqlConnection(@"Data Source = *** ; Initial Catalog = abc123; Persist Security Info = True; User ID = xyz12; Password = xyz12"))
        {
            DataTable dt = new DataTable();
            con.Open();
            SqlDataReader myReader = null;
            SqlCommand cmd = new SqlCommand("SELECT  Machine_name, turn_right, turn_left, total, End_time_sec FROM  Machine_status", con);

            myReader = cmd.ExecuteReader();

            while (myReader.Read())
            {
                string MachineName = myReader["Machine_name"].ToString();                                  
                float Total = float.Parse(myReader["Total"].ToString());  
                float TurnRight = float.Parse(myReader["Turn_right"].ToString());
                float TurnLeft = float.Parse(myReader["Turn_left"].ToString());
                float Total_1= float.Parse(myReader["Turn_right + Turn_left"].ToString());
                TextBox1.Text = (myReader["End_time_sec"].ToString());
                Chart1.Series.Add("Series1");
                Chart1.Series["Series1"].ChartType = SeriesChartType.Column;
                Chart1.Series["Series1"].Points.AddXY(MachineName,Total_1);
                Chart1.Series["Series2"].Points.AddXY(MachineName, Total-Total_1);  
            }
            con.Close();
        }
    }

我正在尝试在 X 轴上使用 machineName 和在 Y 轴上代表 TotalTotal_1 的进度图表。 Total_1 显示已完成的工作。
详情:

Machine_name = abc ;
turn_right = 2.5; 
turn_left = 3.2 ; 
total = 9; 
Total_1 = 5.7  

请帮忙!!

【问题讨论】:

  • 您的reader 变量来自哪里?我看到了myReader 的声明,但没有看到reader 的声明。您是否还尝试查看没有任何.ToString()float.ParsemyReader["Total"] 得到了什么?最后但并非最不重要的一点是,您写了一个您遇到的错误,所以您可以将它复制/粘贴到您的问题中吗?
  • 对不起“读者”。我已经改了。

标签: c# asp.net


【解决方案1】:

使用 GetFloat 方法。数字是列的索引位置。

float total = reader.GetFloat(3);

【讨论】:

  • 这也是无效的——float Total_1= float.Parse(reader["Turn_right + Turn_left"].ToString());
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-18
  • 2014-02-22
  • 2010-12-04
  • 1970-01-01
相关资源
最近更新 更多