高手看看我这段代码出现什么问题?
1、新建一个DataOperate类,代码如下:
public bool DataCom(string sqlstr)
{
my_conn.Open();
OleDbCommand sqlcomm = new OleDbCommand(sqlstr, my_conn);
try
{
sqlcomm.ExecuteNonQuery();
return true;
}
catch
{
return false;
}
finally
{
my_conn.Close();
}
}2、在页面后台代码
DataOperate sqlBind = new DataOperate();
string sqlstr = "insert into Card (UserID,ModuleID,CardName,CardContent)"
+ " values('" + Session["UserID"].ToString() + "','" + strModuleID.ToString()
+ "','" + txtCardTitle.Text + "','" + txtCardContent.Text + "')";
sqlBind.DataCom(sqlstr);
Response.Write("<script language=javascript>alert('发表成功');</script>");运行没有出现错误,提示“发表成功”但数据库里却没内容?为什么?请指点!!谢谢!!
1、新建一个DataOperate类,代码如下:
public bool DataCom(string sqlstr)
{
my_conn.Open();
OleDbCommand sqlcomm = new OleDbCommand(sqlstr, my_conn);
try
{
sqlcomm.ExecuteNonQuery();
return true;
}
catch
{
return false;
}
finally
{
my_conn.Close();
}
}2、在页面后台代码
DataOperate sqlBind = new DataOperate();
string sqlstr = "insert into Card (UserID,ModuleID,CardName,CardContent)"
+ " values('" + Session["UserID"].ToString() + "','" + strModuleID.ToString()
+ "','" + txtCardTitle.Text + "','" + txtCardContent.Text + "')";
sqlBind.DataCom(sqlstr);
Response.Write("<script language=javascript>alert('发表成功');</script>");运行没有出现错误,提示“发表成功”但数据库里却没内容?为什么?请指点!!谢谢!!
如果 正常 查看 是不是没有取到 参数
只要这个方法执行了,没有异常,不管数据库操作是否成功,都会输出成功的。
可以这样public Boolean ExecSQL(string sQueryString)
{
OleDbConnection con = new OleDbConnection(ConfigurationManager.AppSettings["conStr"]);
con.Open();
OleDbCommand dbCommand = new OleDbCommand(sQueryString, con);
try
{
dbCommand.ExecuteNonQuery();
con.Close();
}
catch
{
con.Close();
return false;
}
return true;
}
然后这样调用
DataOperate sqlBind = new DataOperate();
string sqlstr = "insert into Card (UserID,ModuleID,CardName,CardContent)"
+ " values('" + Session["UserID"].ToString() + "','" + strModuleID.ToString()
+ "','" + txtCardTitle.Text + "','" + txtCardContent.Text + "')";
bool flag= sqlBind.ExecSQL(sqlstr);
if(flag)
{
Response.Write(" <script language=javascript>alert('发表成功'); </script>");
}else
{
Response.Write(" <script language=javascript>alert('发表失败); </script>"); }
是返回受影响的行数,就算操作没有成功还不是return true;
设断点调试
或者在SQLSERVER的事件查看器中看。
string sqlstr = "insert into Card (UserID,ModuleID,CardName,CardContent)"
+ " values('" + Session["UserID"].ToString() + "','" + strModuleID.ToString()
+ "','" + txtCardTitle.Text + "','" + txtCardContent.Text + "')";
bool IsSucc= sqlBind.DataCom(sqlstr);
if(IsSucc)
Response.Write(" <script language=javascript>alert('发表成功'); </script>");
else
Response.Write(" <script language=javascript>alert('发表失败'); </script>");
但错误被你直接处理
catch
{
return false;
}
没有提示出具体错误信息,成功以都往下执行了
你调试一下,把try去掉,直接让它把错误报出来
public bool ExecSQL(string sQueryString)
{
OleDbConnection con = new OleDbConnection(ConfigurationManager.AppSettings["conStr"]);
con.Open();
OleDbCommand dbCommand = new OleDbCommand(sQueryString, con);
try
{
return dbCommand.ExecuteNonQuery() > 0;
}
finally
{
con.Close();
}
return false;
}
然后这样调用
DataOperate sqlBind = new DataOperate();
string sqlstr = "insert into Card (UserID,ModuleID,CardName,CardContent)"
+ " values('" + Session["UserID"].ToString() + "','" + strModuleID.ToString()
+ "','" + txtCardTitle.Text + "','" + txtCardContent.Text + "')";
bool flag= sqlBind.ExecSQL(sqlstr);
if(flag)
{
Response.Write(" <script language=javascript>alert('发表成功'); </script>");
}else
{
Response.Write(" <script language=javascript>alert('发表失败); </script>"); }