2017-02-21 27 views
-11

Я использую Excel лист для обработки данных,

DataTable dtSchema = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); 
var sheetName = dtSchema.Rows[0]["TABLE_NAME"].ToString(); 
OleDbCommand command = new OleDbCommand 
     ("Select * FROM [sheet = "+sheetName+"]",connection); 

using (OleDbDataReader dr = command.ExecuteReader()) 
{ 
    string sqlConnectionString = MyConString; 
    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString)) 
    { 
     SqlBulkCopy bulkInsert = new SqlBulkCopy(sqlConnectionString); 
     bulkInsert.DestinationTableName = "Temp"; 
     bulkInsert.WriteToServer(dr); 
     MessageBox.Show("Upload to DB Temp Table Successful!"); 
    } 
} 

Как вы можете в течение первых двух строк кода, который я дал здесь, я использую OLEDBSchemaTable метод, чтобы получить имя из первого листа в excel. эта функция получает имя листа, но вместе с ним помещает знак «$» в конце имени листа. например, мое первое имя листа excel - «" Sheet1 "" ", затем в коде его get sheet1 и заканчивается знак $. например "" "Sheet1 $" "" .. Пожалуйста, помогите мне удалить этот знак $ или дать мне другой способ получить имя листа.

+6

Altough это большой вопрос название ... Вы действительно должны поместить больше описывающие названия для ваших вопросов – NicoRiff

+0

'вар SheetName = dtSchema. Строки [0] ["TABLE_NAME"]. ToString(). Заменить ("$", string.Empty); 'сделать это, и он должен работать – MethodMan

+0

NIcoRiff ... Я буду иметь это в виду в следующий раз .. Спасибо. –

ответ

0

Просто удалите символ «$» из вашей строки с String.Replace:

var newName = sheetName.Replace('$', '');