我用的是VS2005
GridView中加一个“真的要删除吗” 我已经知道了~~~
我现在想知道删除操作是成功还是失败~~~请教该如何实现?顺便问一下 GridView 可以绑定一个 SqlDataSource ,而一个 SqlDataSource 可以设定四条段SQL命令来实现读取,修改,删除和插入,这个大家都是知道的~~~我有时候这四个命令都是存储过程,所以,呵呵,我有时候是设置了一段查询语句和三条修改语句(比如“删除”的时候其实只是修改状态字段值)。在这种情况下我就有了这么一个想法:希望 GridView 在执行 updatecommand 的时候能够像 selectcommand 取到数据。这样我就可以通过存储过程里的 return 或者是 select @err_id,@err_note 来了解 updatecommand 操作的结果和原因。请各位高人赐教,谢谢~~~
GridView中加一个“真的要删除吗” 我已经知道了~~~
我现在想知道删除操作是成功还是失败~~~请教该如何实现?顺便问一下 GridView 可以绑定一个 SqlDataSource ,而一个 SqlDataSource 可以设定四条段SQL命令来实现读取,修改,删除和插入,这个大家都是知道的~~~我有时候这四个命令都是存储过程,所以,呵呵,我有时候是设置了一段查询语句和三条修改语句(比如“删除”的时候其实只是修改状态字段值)。在这种情况下我就有了这么一个想法:希望 GridView 在执行 updatecommand 的时候能够像 selectcommand 取到数据。这样我就可以通过存储过程里的 return 或者是 select @err_id,@err_note 来了解 updatecommand 操作的结果和原因。请各位高人赐教,谢谢~~~
<asp:TemplateField ShowHeader="False" HeaderText="Delete">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="false" CommandArgument='<%# Bind("ID") %>'
CommandName="DeleteLeave" OnClientClick="return confirm('Are you sure to delete?')"
Text="Delete"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
SqlDataSource更新
sqlcommand cmd=new sqlcommand(select count(*) from t_data where id=删除的那条id,"放上你的SQLconnection对象")
int i=covert.toInt32(cmd.ExecutScalat());
if(i>0)
{
Response.write(<script>alert(‘删除操作成功’)</script>)
}
else
{
.....
}只是自己的想法 别砸砖 谢谢...
这个办法当然不错,不过只知道删除是否成功~~~
而我想知道是由于where中的哪个具体条件导致删除失败?还是因为这个记录在提交前被其他人删除?
而且,最好是执行删除命令的时候就一次返回执行结果,而不是事后在去查询状况~~~
该页无法显示,呵呵~~~
6楼 mngzilin老大 和7楼 qingwengang123老大 你们的想法对我很有启发
不过由于时间关系我只能加紧开发,却无暇去尝试,只能以后抽时间研究一下~不过觉得很奇怪,既然微软的 MSSQL 存储过程是可以返回多个记录集
为何 SqlDataSource 却只能搞到第一个?既然存储过程是有输出参数和返回值的,为何 SqlDataSource 也没有提供支持?真想等我哪天搞懂了,自己写一个 Pr_DataSource ~~~
不只是要支持插,改,删,插,还要可以随意增加删除命令,然后想执行哪个就执行哪个
要把所有的返回值,输出参数,记录集统统接收,然后想查看哪个就查看哪个那时候,才好呢,嘿嘿~~~
ClientScript.RegisterStartupScript(this.GetType(), "", "<script language=javascript>alert('删除成功!');</script>");
ConfigurationManager.ConnectionStrings["HotelManagerConnectionString"].ConnectionString;
private static SqlConnection connection; private static SqlConnection GetConnection()
{
try
{
if (connection == null)
connection = new SqlConnection(CONNECTIONSTRING);
if (connection.State == ConnectionState.Open)
connection.Close();
connection.Open();
return connection;
}
catch (Exception ex)
{
throw ex;
}
} public static DataSet ExecuteDataSet(string sql,CommandType cmdType,
params SqlParameter[] parameters)
{
try
{
SqlConnection cnn = GetConnection();
SqlDataAdapter sda = new SqlDataAdapter(sql, cnn);
sda.SelectCommand.CommandType = cmdType;
if (parameters != null)
sda.SelectCommand.Parameters.AddRange(parameters);
DataSet ds = new DataSet();
sda.Fill(ds, "Demo");
return ds;
}
catch (Exception ex)
{
GetConnection().Close();
throw ex;
}
} public static int ExecuteNonQuery(string sql, CommandType cmdType,
params SqlParameter[] parameters)
{
try
{
SqlConnection cnn = GetConnection();
SqlCommand cmd = new SqlCommand(sql, cnn);
cmd.CommandType = cmdType;
if (parameters != null)
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
GetConnection().Close();
}
} public static SqlDataReader ExecuteReader(string sql, CommandType cmdType,
params SqlParameter[] parameters)
{
try
{
SqlConnection cnn = GetConnection();
SqlCommand cmd = new SqlCommand(sql, cnn);
cmd.CommandType = cmdType;
if (parameters != null)
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
GetConnection().Close();
throw ex;
}
} public static object ExecuteScanlar(string sql, CommandType cmdType,
params SqlParameter[] parameters)
{
try
{
SqlConnection cnn = GetConnection();
SqlCommand cmd = new SqlCommand(sql, cnn);
cmd.CommandType = cmdType;
if (parameters != null)
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteScalar();
}
catch (Exception ex)
{
throw ex;
}
finally
{
GetConnection().Close();
}
}
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="false" CommandArgument='<%# Bind("ID") %>'
CommandName="DeleteLeave" OnClientClick="return confirm('真的要删除吗?')"
Text="Delete"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
如果是这样的话,我想你通过抛出异常,然后再用Alert(ex.message),应该可以显示到底是什么地方不对导致的删除失败!