怎样编写更新查询以行使SQL数据源更新两个表?
是否可以行使SQL数据源和ASP.NET网格视图更新两个表?我有Select语句的以下SQL查询. SELECT tbl_user_login.ID,tbl_user_login.UserID,tbl_user_login.Pass,tbl_user_login.Enabled,tbl_user_login.Permission,tbl_user_login.Rank,tbl_user_profile.ID AS Expr1,tbl_user_profile.FName,tbl_user_profile.LName,tbl_user_profile.Phone,tbl_user_profile.Email1,tbl_user_profile.Email2 FROM tbl_user_login INNER JOIN tbl_user_profile ON tbl_user_login.ID = tbl_user_profile.ID 但我不知道如安在SQL数据源中编写更新和删除语句 UPDATE 以是我写了市肆措施. CREATE PROCEDURE UpdateTwoTable ( @ID int,@UserID varchar(10),@Pass varchar(50),@Enabled int,@Permission int,@Rank int,@FName varchar(50),@LName varchar(50),@Phone varchar(50),@Email1 varchar(50),@Email2 varchar(50) ) AS BEGIN TRANSACTION UPDATE tbl_user_login SET UserID = @UserID,Pass = @Pass,Enabled = @Enabled,Permission = @Permission,Rank = @Rank WHERE ID = @ID IF @@ERROR <> 0 BEGIN ROLLBACK RETURN END UPDATE tbl_user_profile SET FName = @FName,LName = @LName,Phone = @Phone,Email1 = @Email1,Email2 = @Email2 WHERE ID = @ID IF @@ERROR <> 0 BEGIN ROLLBACK RETURN END COMMIT 但我获得进程或函数UpdateTwoTable指定了太多参数. UPDATE 我凭证本指南,此刻题目办理了.感激全部辅佐过的人! http://www.whitworth.org/2006/01/16/how-to-troubleshoot-procedure-or-function-has-too-many-arguments-specified-in-aspnet-20/ 下面是我的SQL数据源. <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ConnectionStrings:DBConnString %>" SelectCommand="SELECT tbl_user_login.ID,tbl_user_profile.Email2 FROM tbl_user_login INNER JOIN tbl_user_profile ON tbl_user_login.ID = tbl_user_profile.ID" UpdateCommand="UpdateTwoTable" UpdateCommandType="StoredProcedure" OldValuesParameterFormatString="Original_{0}"> <UpdateParameters> <asp:Parameter Name="ID" /> <asp:Parameter Name="UserID"/> <asp:Parameter Name="Pass"/> <asp:Parameter Name="Enabled"/> <asp:Parameter Name="Permission"/> <asp:Parameter Name="Rank"/> <asp:Parameter Name="FName"/> <asp:Parameter Name="LName"/> <asp:Parameter Name="Phone"/> <asp:Parameter Name="Email1"/> <asp:Parameter Name="Email2"/> </UpdateParameters> </asp:SqlDataSource> 办理要领是的,这是也许的.以下是怎样故安详的方法举办操纵:CREATE PROCEDURE UpdateUser (@ID int,@Pass varchar(15),@Email varchar(75)) AS BEGIN TRANSACTION UPDATE tbl_user_login SET Pass = @Pass WHERE ID = @ID IF @@ERROR <> 0 BEGIN ROLLBACK RETURN END UPDATE tbl_user_profile SET Email1 = @Email WHERE ID = @ID IF @@ERROR <> 0 BEGIN ROLLBACK RETURN END COMMIT 通过这种方法,您不必担忧任何更新引起的错误.这意味着:假如个中任何一个失败,整个操纵将被打消,您的数据库中不会有纷歧致的数据. 有关买卖营业行使的更多信息,请会见:http://www.4guysfromrolla.com/webtech/080305-1.shtml 根基的DELETE statement是:DELETE FROM< tablename> WHERE< condition> (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |