C#中的数字和双/小数之间的转换

时间:2015-02-25 06:56:06

标签: c# sql decimal numeric

我试图抓取某个列/列表框中的元素,其类型为"数字"并将它们存储在C#中的List中。

 datTable = new DataTable();
            sqlCmd = new SqlCommand(@
            "SELECT DISTINCT [" + form1.getColumnName() + "] 
            FROM [" + form1.getTableName() + "]", connection);
            sqlDatAdapter = new SqlDataAdapter(sqlCmd.CommandText, connection);
            sqlDatAdapter.Fill(datTable);

            form1.columnStorList.DisplayMember = form1.getColumnName();
            form1.columnStorList.ValueMember = "Column1";
            form1.costStorList.DataSource = datTable;


 List<Decimal> columnElements = new List<Decimal>();

foreach (var selectedItem in form1.columnStorList.SelectedItems)
{
    DataRow row = (selectedItem as DataRowView).Row;
    columnElements.Add(row.Field<decimal>(form1.getColumnName()));
}
不知怎的,他不想转换它。 Double并不起作用。例如,值'0,000000'显示为'0'。我试图将元素转换为Double,然后我得到'0.0'。十进制应该是最接近数字还是我错了?如何正确显示?

当我在列表框中突出显示它时,我想使用SELECT语句(SELECT...FROM...WHERE...=0,000000)来搜索数据库中的值。由于他将值减去了我在数据库中找不到的特定值。

SELECT语句是:

 datTable = new DataTable();
 fullStatementColumn = Convert.ToString(columnElements[0]);
 String selectStatement = "SELECT [" + form1.colBox.Text + "] 
 FROM [" + form1.tableNameVal.Text + "] 
 WHERE convert(varchar(120),[" + form1.getColumnName() + "])='" 
 + fullStatementColumn + "'";

0 个答案:

没有答案