我想把下载下来的网页的html放入数据库,可是使用insert语句时,由于html中包含许多单双引号和转义符,总是会失败,不知道处理这个问题,有没有好办法啊
解决方案 »
- 一个隐式转换返回值重载问题
- C#如何做用户监测
- c#变参问题
- 如何提取word文档的内容
- 关于键盘事件的响应
- 求助:各位大侠,用C#连接SQL数据库适配器FILL数据总超时,请问有何好的办法解决啊?(除修改连接字符串,加TIMEOUT时间外)
- 这个问题一定要星星回答,不是星星顶顶也有分,不够再加哦~!
- .NET框架在哪下载呀???
- 如何给System.Diagnostics.Process.StartInfo.Arguments属性设置带空格的值?
- CrystalReport:Load report failed.
- 如何将datagridview的某列移到最后一列显示 【高分】
- webbrowser多线程请教~分不够可以再给~~
a.Replace("\"","\\\"");
能否给个代码演示下
我试了,调用存储过程照样存不进去,会出现异常,{"Incorrect string value: '\\xC2\\xB7<a h...' for column 'html' at row 1"}我的存储过程
CREATE PROCEDURE insertpc(in htmlstr LongText,in dates date,in urlstr Text)
begin
INSERT INTO pachong(html,faburiqi,url) VALUES(htmlstr,dates,urlstr);
endc#调用:
public void CCHinsert(string html, string date, string url)
{ MySqlConnection mysqlcon;
MySqlDataAdapter mysqldata = new MySqlDataAdapter();
DataSet dataset = new DataSet();
mysqlcon = new MySqlConnection(ContString);
mysqlcon.Open();
mysqldata.SelectCommand = new MySqlCommand();
mysqldata.SelectCommand.Connection = mysqlcon;
mysqldata.SelectCommand.CommandText = "insertpc";//存储过程的名字
mysqldata.SelectCommand.CommandType = CommandType.StoredProcedure;//设置类型为存储过程
//设置参数,添加到数据库
MySqlParameter html_parameter = new MySqlParameter("?htmlstr", MySqlDbType.LongText);
html_parameter.Value = html;
mysqldata.SelectCommand.Parameters.Add(html_parameter); MySqlParameter date_parameter = new MySqlParameter("?dates", MySqlDbType.Date);
date_parameter.Value = date;
mysqldata.SelectCommand.Parameters.Add(date_parameter); MySqlParameter password_parameter = new MySqlParameter("?urlstr", MySqlDbType.Text);
url_parameter.Value = url;
mysqldata.SelectCommand.Parameters.Add(url_parameter); mysqldata.SelectCommand.ExecuteNonQuery();
}
2、存储过程
确定你存储过程没问题
要不建议你把string转换成二进制存储吧 varbinary
mysql里面的varchar限定最长21845,一般网页的HTML绝对超过了
我用varchar时候会提示插入的列太长,所以没办法了只好用longtext,但是用这个就会出现异常,{"Incorrect string value: '\\xC2\\xB7<a h...' for column 'html' at row 1"}