[ADO.NET] Microsoft.Jet.OLEDB.4.0 + dbf = Data type mismatch
От: Ex_Soft  
Дата: 01.08.09 22:14
Оценка:
con=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=dBASE IV;User ID=;Password=;Data Source="+System.IO.Directory.GetCurrentDirectory());
...
cmd.CommandText="insert into TableName (FieldChar, FieldNumeric) values (?, ?)";
CommandDest.Parameters.Add("FieldChar",OleDbType.VarChar); //1
CommandDest.Parameters.Add("FieldNumeric",OleDbType.Numeric); //2

Как видите — ничего космического.
CommandDest.Parameters["FieldChar"].Value="A";
CommandDest.Parameters["FieldNumeric"].Valie=1;

Проходит на ура. Но мне необходимо запихнуть данные из DataRow. И тут
CommandDest.Parameters["FieldNumeric"].Valie=row["FieldSrc"];
||
CommandDest.Parameters["FieldNumeric"].Valie=Convert.ToDecimal(row["FieldSrc"]);
||
CommandDest.Parameters["FieldNumeric"].Valie=Convert.ToDouble(row["FieldSrc"]);

все три варианта дают:

CommandDest.Parameters["FieldNumeric"].Valie=Convert.ToDecimal(row["FieldSrc"]);

Причем на одной маше — все сухо. А на другой, как раз где позарез нужно, — вот такая беда. google'л. Но в основном данная проблема вылазит у тех, кто собирает запрос.
Сакраментальный вопрос: Кто виноватЪ? Что делатЪ? Ну до позарезу нужно впихнуть в numeric поле число с точкой.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.