我看到别人原来的ASP写的程序是用的下面的这种方式入库的,不是insert,他们有什么不同吗?sql="select * from article where (newsid is null)"
rs.open sql,conn,1,3
rs.addnew
rs("title")=title
rs("path")=filepath
rs("content")=content
rs.update里面的content字段为新闻内容字段,入库的时候一切正常,包括那些""''符号之类的也没有什么问题,但是我使用C#写的ASP.NET页面使用的是insert语句
public int InsertNews(string title,
string author,
string filepath,
string filename,
string content,
string typename
)
{ SqlConnection sqlconn= new SqlConnection(ConfigurationSettings.AppSettings["connectionstring"]);
sqlconn.Open(); string sql = "insert into NewsContent(title,author,filepath,filename,content,typename,datetime,hits)values('"+title+"','"+author+"','"+filepath+"','"+filename+"','"+content+"','"+typename+"','"+DateTime.Now.ToString()+"',0)"; //Response.Write(sql);
//return 0; SqlCommand cmd = new SqlCommand(sql, sqlconn);
cmd.ExecuteNonQuery(); sqlconn.Close(); return 0;
}每次都抱错,说''""附近有语法错误,我快郁闷死了,请问大家是asp与asp.net不同啊?还是insert语句与rs.addnew不同???????asp.net里面改怎么写rs.addnew这样的语句????????
解决方案 »
- objectdatasource的架构刷新无反应
- 如果只需要获取一行记录,大家一般用什么方法?
- 请教关于Ext.NET的相关学习知识
- 因为要下载xls文件所以写了response.redirect之后页面不会刷新,如何让redirect之后页面刷新呢
- DataListk中FindControl
- 寻一个网页播放FLV格式的播放器和代码
- 关于DataGrid的格式问题
- 怎样使用vs.net 的 ‘web安装项目‘ 发布 web 程序?
- 在TreeView中,如何利用javascript获取当前结点的父结点?
- 请教一个aspx 退出系统后 网页过期的问题
- 在windows的COM+组建服务中使用Everyone用户设置为该服务的角色用户是否安全?
- --------------------急,控制上传图片位置的问题,急,求教,问题如下----------------------
直接写sql执行也行, 如果插入记录不多的话,没多大区别的。
语法有错误就自己跟踪查查啊,看sql语句写对没有,可以自己去sql server里去执行看看
在数据访问层里写个Insert方法。www.x2blog.cn/supnate 的控件集,开源的。你可以下来自己做补充,非常不错。
数据添加用这样就可以了。(我已做了修改)
this.Instance();
dbo.AddFieldItem("log_CateID",CateID);
dbo.AddFieldItem("log_Title",Title); dbo.AddFieldItem("log_Intro",Intro);
dbo.AddFieldItem("log_Author",Author);
dbo.AddFieldItem("log_From",From);
dbo.AddFieldItem("log_FromURL",FromURL);
dbo.AddFieldItem("log_Quote",Quote);
dbo.AddFieldItem("log_Content",Content);
dbo.AddFieldItem("log_PostTime",PostTime);
dbo.AddFieldItem("log_CommNums",CommNums);
dbo.AddFieldItem("log_ViewNums",ViewNums);
dbo.AddFieldItem("log_QuoteNums",QuoteNums); dbo.AddFieldItem("log_IsShow",IsShow);
dbo.AddFieldItem("log_DisComment",DisComment);
dbo.AddFieldItem("log_IsTop",IsTop); dbo.AddFieldItem("log_weather",Weather);
dbo.AddFieldItem("log_Level",Level);
dbo.AddFieldItem("log_edittype","0");//编辑器类型
dbo.AddFieldItem("log_comorder",Comorder);
dbo.AddFieldItem("log_IsDraft","0"); //草稿取消
dbo.AddFieldItem("log_tag","1");//tag未完成
int returnID=dbo.Insert("blog_Content");
dbo.CloseDB();
很像rs.addnew吧?
1、把数据字段名和字段值用类或者结构封装,保存要提交的数据。
2、把封装好的数据放入ArrayList数组
3、循环读取数组,添加入数据库。
string sql = "insert into NewsContent(title,author,filepath,filename,content,typename,datetime,hits)values('"+title+"','"+author+"','"+filepath+"','"+filename+"','"+content+"','"+typename+"','"+DateTime.Now.ToString()+"',0)";这种拼接出来的SQL不建议使用。应该改为参数占位方式:string sql = "insert into NewsContent(title,author,filepath,filename,content,typename,datetime,hits)values('@title','@author','@filepath','@filename','@content','@typename','@datetime',0)";cmd.Parameters.Add("@title", SqlDbType.VarChar).Value = title;
cmd.Parameters.Add("@author", SqlDbType.VarChar).Value = author;
cmd.Parameters.Add("@filepath", SqlDbType.VarChar).Value = filepath;
cmd.Parameters.Add("@filename", SqlDbType.VarChar).Value = filename;
cmd.Parameters.Add("@content", SqlDbType.VarChar).Value = content;
cmd.Parameters.Add("@typename", SqlDbType.VarChar).Value = typename;
cmd.Parameters.Add("@datetime", SqlDbType.DateTime).Value = DateTime.Now; // 怀疑是你日期格式不对,楼主仔细检查一下。传入数据与数据库字段类型是否匹配。
“参数占位方式”确实是一个不错的选择。