Я создал приложение, которое конвертирует файлы Excel в базы данных Access.Во время преобразования символ «:» в данных в столбце MACAddress необходимо заменить пробелом.
Я попытался изменить запрос с помощью метода replace, но он не сработал, он отображает сообщение об ошибке:
неопределенная функция "replace".
Ниже приведен запрос, который я сейчас использую с функцией replace:
cmd.CommandText = "INSERT INTO [MS Access;Database=" + Access + "].[NMS_List_Export] SELECT [IP Address] as [IPAddress],Replace([Mac Address],':',' ') as [MACAddress],[Last seen on Channel] as [LastseenonChannel] FROM [NMS_List_Export$]";
Может кто-нибудь пожалуйстапомогите мне в этом вопросе.Заранее спасибо !!
Пожалуйста, найдите полный код:
namespace NMS_Client
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (File.Exists(@"C:\NMS_List_Export.mdb"))
{
File.Delete(@"C:\NMS_List_Export.mdb");
bool blnSuccess = CreateDB(@"C:\NMS_List_Export.mdb");
}
else
{
bool blnSuccess = CreateDB(@"C:\NMS_List_Export.mdb");
}
string Access = @"C:\NMS_List_Export.mdb";
string Excel = textBox1.Text.Replace("'\'", "'\\'");
string connect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Excel + ";Extended Properties=Excel 8.0;";
using (OleDbConnection conn = new OleDbConnection(connect))
{
using (OleDbCommand cmd = new OleDbCommand())
{
cmd.Connection = conn;
//Query is addressed
cmd.CommandText = "INSERT INTO [MS Access;Database=" + Access + "].[NMS_List_Export] SELECT [IP Address] as [IPAddress],[MAC Address]as [MACAddress],[Last seen on Channel] as [LastseenonChannel] FROM [NMS_List_Export$]";
conn.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("The import is complete!");
}
}
}
//CreateDB Method
public static bool CreateDB(string pstrDB)
{
try
{
Catalog cat = new Catalog();
string strCreateDB = "";
strCreateDB += "Provider=Microsoft.Jet.OLEDB.4.0;";
strCreateDB += "Data Source=" + pstrDB + ";";
strCreateDB += "Jet OLEDB:Engine Type=5";
cat.Create(strCreateDB);
Table nTable = new Table();
nTable.Name = "NMS_List_Export";
nTable.Columns.Append("IPAddress", DataTypeEnum.adVarWChar,25);
nTable.Columns.Append("MACAddress", DataTypeEnum.adVarWChar,25);
nTable.Columns.Append("LastseenonChannel", DataTypeEnum.adVarWChar,25);
cat.Tables.Append(nTable);
return true;
}
catch (Exception)
{
MessageBox.Show("The import is incomplete!");
throw;
}
}
}
}
Текущий столбец MAC-адреса s следующим образом: 11: 12: 23: 12 11:12:23:12 11: 12: 23: 12 11: 12: 23: 12 11: 12: 23: 12 11: 12: 23: 12
необходимо преобразовать, как показано ниже: 11 12 23 12 1112 23 12 11 12 23 12 11 12 23 12 11 12 23 12 11 12 23 12