Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 指定的强制转换无效-浮点_Sql_Viewmodel_Datareader - Fatal编程技术网

Sql 指定的强制转换无效-浮点

Sql 指定的强制转换无效-浮点,sql,viewmodel,datareader,Sql,Viewmodel,Datareader,不确定为什么我会收到此错误,因为转换其他列工作正常 基本上我有一个SELECT语句,它回放int/string/float。下面的代码只在float上抛出上述错误,但是在Database/ViewModel中,它们都是float类型 视图模型 public float personalAmount { get; set; } 存储库 string selectQuery = "SELECT OC.[id], OC.[number_id], ONU.[mobile_number], O

不确定为什么我会收到此错误,因为转换其他列工作正常

基本上我有一个SELECT语句,它回放int/string/float。下面的代码只在float上抛出上述错误,但是在Database/ViewModel中,它们都是float类型

视图模型

public float personalAmount { get; set; }
存储库

     string selectQuery = "SELECT OC.[id], OC.[number_id], ONU.[mobile_number], OC.[personal_amount], OC.[start_date], OC.[end_date] " +
                                "FROM export OC " +
                                    "INNER JOIN numbers ONU ON OC.number_id = ONU.number_id " +
                                "WHERE OC.[person_id] = " + id;
        SqlCommand myCommand = new SqlCommand(selectQuery);
        myCommand.Connection = myConnection;
        myConnection.Open();

        SqlDataReader dataReader = myCommand.ExecuteReader();
        if (!dataReader.HasRows) return null;

        var newData = new List<List>();
        while (dataReader.Read())
        {
            List list = new List();
            list.id = (int)dataReader["id"];
            list.mobileNumber = dataReader["mobile_number"].ToString();
            list.personalAmount = (float) dataReader["personal_amount"];
            list.startDate = (DateTime)dataReader["start_date"];
            list.endDate = (DateTime)dataReader["end_date"];

            newData.Add(list);
        }
        dataReader.Close();
string selectQuery=“选择OC.[id],OC.[number\u id],ONU.[mobile\u number],OC.[personal\u amount],OC.[start\u date],OC.[end\u date]”+
“来自导出OC”+
“OC.number\u id=ONU.number\u id上的内部连接编号ONU”+
“其中OC.[person_id]=”+id;
SqlCommand myCommand=新建SqlCommand(选择查询);
myCommand.Connection=myConnection;
myConnection.Open();
SqlDataReader=myCommand.ExecuteReader();
如果(!dataReader.HasRows)返回null;
var newData=newlist();
while(dataReader.Read())
{
列表=新列表();
list.id=(int)dataReader[“id”];
list.mobileNumber=dataReader[“mobile_number”].ToString();
list.personalAmount=(float)数据读取器[“个人金额”];
list.startDate=(DateTime)数据读取器[“开始日期”];
list.endDate=(DateTime)数据读取器[“end_date”];
newData.Add(列表);
}
dataReader.Close();
提前感谢您的帮助:-)


Clare

您是否尝试过执行Float.Parse(dataReader[“personal_amount”].ToString())操作

这不是一个很酷的解决方法,但它可能有效