请看下面的代码:
/// <summary>
/// (添加新闻)添加数据
/// </summary>
/// <returns></returns>
public bool AddNewsData_V()
{
StrSql = "Insert Into [WIN_NEWS_ARTICLE_V] ([WIN_ARTICLE_ID],[WIN_ARTICLE_TYPE],[WIN_ARTICLE_IMGS],[WIN_ARTICLE_TITLE],[WIN_ARTICLE_DATE],[WIN_ARTICLE_NAVI],[WIN_ARTICLE_ASCID])Values(@NewsId,@NewsType,@NewsImgs,@NewsTitle,@NewsDate,@NewsNavi,@NewsAsc)";
Newsid = new SqlParameter("@NewsId", SqlDbType.NVarChar, 36);
Newsid.Value = Convert.ToString(newsid);
Newstype = new SqlParameter("@NewsType", SqlDbType.Int);
Newstype.Value = Convert.ToInt32(newstype);
Newsimgs = new SqlParameter("@NewsImgs", SqlDbType.NVarChar, 255);
Newsimgs.Value = Convert.ToString(newsimgs);
Newstitle = new SqlParameter("@NewsTitle", SqlDbType.NVarChar, 255);
Newstitle.Value = Convert.ToString(newstitle);
Newsdate = new SqlParameter("@NewsDate", SqlDbType.DateTime);
Newsdate.Value = Convert.ToDateTime(newsdate);
Newsnavi = new SqlParameter("@NewsNavi", SqlDbType.NVarChar);
Newsnavi.Value = Convert.ToString(newsnavi);
Newsasc = new SqlParameter("@NewsAsc", SqlDbType.Int);
Newsasc.Value = Convert.ToInt32(newsasc);
SqlParameter[] ArryPars ={ Newsid, Newstype, Newsimg, Newstitle, Newsdate, Newsnavi, Newsasc };
return db.ExecuteData(StrSql, ArryPars);
} public bool AddTags()
{
跟上面差不多.......
SqlParameter[] ArryPars ={ Tagsid, Tagsname };
return db.ExecuteData(StrSql, ArryPars);
} /// <summary>
/// 运行SQL语句返回True/False
/// </summary>
/// <param name="SQL"></param>
public bool ExecuteData(string StrSql, SqlParameter[] ArryPars)
{
SqlConn = GetConn();
Command = new SqlCommand(StrSql, SqlConn);
if (ArryPars.Length > 0)
{
for (int i = 0; i < ArryPars.Length; i++)
{
Command.Parameters.Add(ArryPars[i]);
}
}
try
{
if (Command.ExecuteNonQuery() > 0)
{
return true;
}
else
{
return false;
}
}
catch
{
return false;
}
Command.Parameters.Clear();
Dispose(SqlConn);
}
调用:if(AddNewsData_V())
{
if(AddTags())
{
response.write("添加成功");
}
else
{response.write("添加失败");}
response.write("添加成功");
}
else
{
response.write("添加失败");
}
运行的时候 AddNewsData_V()能够成功运行并添加数据,但是接下来AddTags()就不能成功运行并弹出错误
另一个 SqlParameterCollection 中已包含 SqlParameter。请问怎样修改
解决方案 »
- 页面网址传值怎么获取
- Asp.net 实现 生产监视画面 可行吗?
- [100分]-_-!神码!!!请JS达人讲解!!!!!!!!!!!!!!!
- ASP.NET中如何点击按钮弹出日历选择框选择日期?
- 来帮我分分这个数据字符串.
- 帮我看看这是什么问题?选择日期间无数据的时候出错,有数据的时候正常.
- 请教,web报表,谁有好的解决方案?
- 长文本在页面中的格式问题?(100求)
- 关于C#序列化....懂的GGJJ们进来帮帮小D..
- 求正则表达式,最上层 json
- 请教Asp.net Ajax一个问题
- 点击gridview中的模板列textbox,弹出一个页面,选择值后,如何将这个选择的值返回给这个gridveiw模板列的textbox的值呢?急急!!!
这就是这个问题的解决方法。另外本人比较笨,想问楼主一个问题
treturn db.ExecuteData(StrSql, ArryPars);
his.bind(); 这个db.[color=#FFF0000]这个是什么用法,能说下吗?还没遇到过这个用法.
谢谢
public bool ExecuteData(string StrSql, SqlParameter[] ArryPars)
{
SqlConn = GetConn();
Command = new SqlCommand(StrSql, SqlConn);
if (ArryPars.Length > 0)
{
for (int i = 0; i < ArryPars.Length; i++)
{
Command.Parameters.Add(ArryPars[i]);
}
}
try
{
if (Command.ExecuteNonQuery() > 0)
{
return true;
}
else
{
return false;
}
}
catch
{
return false;
}
Command.Parameters.Clear();
ArryPars = null;//加上这句试试
Dispose(SqlConn);
}
{
SqlConn = GetConn();
Command = new SqlCommand(StrSql, SqlConn);
if (ArryPars.Length > 0)
{
for (int i = 0; i < ArryPars.Length; i++)
{
Command.Parameters.Add(ArryPars[i]);
}
}
try
{
if (Command.ExecuteNonQuery() > 0)
{
//这里如果成功,会直接return ,从而参数无法清除
return true;
}
else
{
//同理
return false;
}
}
catch
{
// 同理
return false;
}
finally
{
//加finally块试一下
Command.Parameters.Clear();
Dispose(SqlConn);
}
}
或者在方法里面添加一个bool 类型的变量 flag
if (Command.ExecuteNonQuery() > 0)
{
//这里如果成功,会直接return ,从而参数无法清除
flag=true;
}
else
{
//同理
flag=false;
}Command.Parameters.Clear();
Dispose(SqlConn);
return flag;我经常是这样用!