日期:2014-05-18  浏览次数:20964 次

c#数据库SQL语句—replace使用
我的列名有“编号”“备注”,表名为Sheet1. 如下想替换备注中所有的“哈哈”字符为“哈哈谢谢”。提示
“表达式中 'REPLACE' 函数未定义。”
代码如下:
C# code

            string sql = "SELECT 备注,REPLACE([备注],'哈哈','哈哈谢谢')AS 新备注 FROM Sheet1";
            DataSet ds = new DataSet();
            OleDbDataAdapter da = new OleDbDataAdapter(sql, mycon);
            da.Fill(ds, "Sheet1");
            this.dataGridView1.DataSource = ds.Tables[0];



------解决方案--------------------
Update tableName SET columeName = REPLACE(columeName, 'a', 'b')
------解决方案--------------------
Replace是SQL Server数据库中的函数

Jet.OLEDB.4.0 Access数据库中不支持Replace函数的
------解决方案--------------------
我试了没问题啊,你数据库是哪个版本

C# code

declare @tab table
(
    [备注] NVARCHAR(30)
)
insert into @tab
select 'abc哈哈fghi哈哈3rw'
SELECT [备注],REPLACE([备注],'哈哈','哈哈谢谢') AS 新备注 from @tab
/*
备注                             新备注
------------------------------ --------------------------------
abc哈哈fghi哈哈3rw                 abc哈哈谢谢fghi哈哈谢谢3rw

(1 行受影响)
*/

------解决方案--------------------
你这样试试看
C# code


string sql = "SELECT 备注,left([备注], instr([备注], '哈哈')) + '哈哈谢谢'+ right([备注], len([备注]) - instr([备注], '哈哈') - len('哈哈')) 
 AS 新备注 FROM Sheet1";
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter(sql, mycon);
da.Fill(ds, "Sheet1");
this.dataGridView1.DataSource = ds.Tables[0];