用空格replace“:”符号(冒号)

我创build了一个将Excel文件转换为Access数据库的应用程序。 在转换期间,MACAddress列中的数据中的“:”符号需要用空格replace。

我试图通过使用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$]"; 

有人可以帮我解决这个问题。 提前致谢!!

请find完整的代码:

 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地址列如下: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 11 12 23 12 11 12 23 12 11 12 23 12 11 12 23 12 11 12 23 12

由于我们没有原生的SQLreplace方法,我担心你将不得不手动执行:

 string strSelectSQL = "SELECT [IP Address] as [IPAddress], [MAC Address] as [MACAddress],[Last seen on Channel] as [LastseenonChannel] FROM [NMS_List_Export$]"; OleDbCommand selectCommand = new OleDbCommand(strSelectSQL, cmd.Connection); OleDbParameter paramIP = new OleDbParameter("ip", ""); OleDbParameter paramMAC = new OleDbParameter("mac", ""); OleDbParameter paramLastSeen = new OleDbParameter("last_seen", ""); cmd.CommandText = "INSERT INTO [MS Access;Database=" + Access + "].[NMS_List_Export] VALUES (?, ?, ?)"; cmd.Parameters.Add(paramIP); cmd.Parameters.Add(paramMAC); cmd.Parameters.Add(paramLastSeen); using (OleDbDataReader reader = selectCommand.ExecuteReader()) { while (reader.Read()) { paramIP.Value = reader[0].ToString(); paramMAC.Value = reader[1].ToString().Replace(":", " "); paramLastSeen.Value = reader[2].ToString(); cmd.ExecuteNonQuery(); } } 

我不能找出你想要处理的string,但是这听起来像你需要查看string方法。 replace是这样做的

 "A:string".Replace(":", " "); 

你能告诉我们你的replace看起来像什么吗?