我在学习牛腩项目的时候,遇到了好多错误,其中印象最深的是关于SQL语句错误,和空间命名错误的问题。下面我来举几个例子。
在修改新闻的时候,首先要把选择修改的新闻加载到页面上,这时候用到了存储过程。我遇到的问题是,提示我,将nvarchar类型转换为Int类型时出错。我的解决思路是:首先我想的是,是不是定义的string类型错误,然后在我修改的时候,发现修改一个地方,其他好多地方都要修改;我就觉得不对,肯定不是这么麻烦的。然后我去百度,有一个解决方案是:在DAL层的语句中,将其类型转换为int类型,我就把代码改了一下
// 原代码
SqlParameter[] paras = { new SqlParameter("@newsID", newsID) };
//更改之后的代码 本来想直接转成INT类型,结果这样写不对
SqlParameter[] paras = { new SqlParameter("@newsID",sqldbtype.into( newsID)) };
最后我又找到一个解决办法,这个办法最后解决了我的问题,就是把存储过程中的类型改成nvarchar(50)类型。
// 存储过程
ALTER PROCEDURE [dbo].[SelectByNewsID]
@newsID nvarchar(50)
AS
BEGIN
declare @sql varchar(max)
set @sql='select title,content,createTime,caID from news where newsID='+@newsID
exec(@sql)
END
第二个问题是,在搜索新闻,用到了javascript,这里在引用的时候出现了问题,
// 语言是lang
<script lang="javascript" type="text/javascript">
function changeCode() {
var imgNode = document.getElementById("vimg");
imgNode.src = "handler/WaterMark.ashx?t=" + (new Date()).valueOf();//这里加个时间的参数是为了防止浏览器的缓存问题
}
</script>
在后端代码中写也要对应上。
// 后端代码部分
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script lang='javascript' defer>alert(‘评论删除失败,请联系管理员!');</script>");
这是我遇到的问题,请大家指教。