格式异常日期时间c#

时间:2016-02-22 08:37:52

标签: c#

你好我在datetime上有这种格式异常,如何解决这个错误,我已经从访问数据库读取数据,现在我已经在sql server数据库上传了这些数据

EXCEPTION IMAGE

string dbserver2 = textBox4.Text;
            string dbname2 = textBox1.Text;
            string dbusername2 = textBox2.Text;
            string dbpassword2 = textBox3.Text;


            SqlConnection conn2 = new SqlConnection("Data Source=" + dbserver2 + ";Initial Catalog=" + dbname2 + ";User ID=" + dbusername2 + ";Password=" + dbpassword2 + "");

            conn2.Open();

            string queryset2 = "SET IDENTITY_INSERT Articolo ON ";

            string query2 = "INSERT INTO Articolo (CodMarca,CodArt,Fornitore,Descrizione,UM,Prezzo,PrezzoListino,DataAggiornamento) VALUES(@CodMarca,@CodArt,@Fornitore,@Descrizione,@UM,@Prezzo,@PrezzoListino,@DataAggiornamento)";

            SqlCommand myCommand = new SqlCommand(query2, conn2);

            myCommand.Parameters.AddWithValue("@CodMarca", CodMarca);
            myCommand.Parameters.AddWithValue("@CodArt", CodArt);
            myCommand.Parameters.AddWithValue("@Fornitore", Fornitore);
            myCommand.Parameters.AddWithValue("@Descrizione", Descrizione);
            myCommand.Parameters.AddWithValue("@UM", UM);
            myCommand.Parameters.AddWithValue("@Prezzo", System.Convert.ToDecimal(PrezzoNetto));
            myCommand.Parameters.AddWithValue("@PrezzoListino", System.Convert.ToDecimal(PrezzoCasa));

            DateTime dt = Convert.ToDateTime(DataAggiornamento);

            myCommand.Parameters.AddWithValue("@DataAggiornamento", dt);

            myCommand.ExecuteNonQuery();

            conn2.Close();

1 个答案:

答案 0 :(得分:3)

Convert.ToDecimal使用Decimal.Parse,默认使用CurrentCulture设置

您当前的文化可能使用NumberDecimalSeparator而不是,字符串,这就是您的代码抛出FormatException的原因。即使您当前的文化设置使用NumberGroupSeparator作为,,结果也会返回444

作为一种解决方案,您可以Clone您的文化并将此NumberDecimalSeparator属性设置为,并在解析时将 克隆文化作为第二个参数使用。

var clone = (CultureInfo)CultureInfo.CurrentCulture.Clone();
clone.NumberFormat.NumberDecimalSeparator = ",";

myCommand.Parameters.AddWithValue("@PrezzoListino", Convert.ToDecimal(PrezzoCasa, clone));

还有一些事情;