2016-10-16 6 views
0

Я использую этот код для вставки из Excel в SQL. Я хочу, чтобы каждая вставка в моем запросе заменила запятую точкой.Изменить запятую на все мои вставки

SqlCommand cmd2 = new SqlCommand("insert into Market (Barcode,Name,Code,TemporaryStock,VatcodeID,Unit,NetValue,DiscountValue,UnderlyingValue,VatValue,TotalValue) 
select * from OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=" + textBox1.Text + "', 'SELECT * FROM [datasheet1$H:R]')", con); 

cmd2.ExecuteNonQuery(); 

Должен ли я использовать глобальную систему.Globalization.CultureInfo?

+0

Можете ли вы немного разобраться? Какую запятую вы имеете в виду? Что-то в результатах другого запроса? –

+0

Вы можете использовать функцию 'REPLACE()' SQL Server для каждого поля;). –

+0

Нет, это скорее всего будет частью настроек 'Microsoft.ACE.OLEDB.12.0' http://stackoverflow.com/questions/17027552/reading-excel-files-in-a-locale-independent-way – Slai

ответ

-1

Для замены символов/строк в другой строке используйте метод string.Replace.

string str = "insert into Market(Barcode,Name,Code,TemporaryStock,VatcodeID,Unit,NetValue,DiscountValue,UnderlyingValue,VatValue,TotalValue) select * from OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=" + textBox1.Text + "', 'SELECT * FROM [datasheet1$H:R]')"; 

SqlCommand cmd2 = new SqlCommand(str.Replace(',', '.'), con); 
cmd2.ExecuteNonQuery(); 

Подробную информацию об этом можно найти here.

+0

I получите Неправильный синтаксис рядом с.. – user6927546

+0

Прекрасно работает для меня .. Вы можете попробовать использовать str.Replace (",", "."), Чтобы заменить их как строки. –

+0

«Штрих-код, имя, код» превратится в «Barcode.Name.Code» ... –