我使用存儲過程來插入,更新和刪除記錄,並使用LINQ執行或調用過程。 點擊提交按鈕後,更新過程已經執行,但表中沒有變化! 如果我傳遞一個像「Jack」而不是fname_txt.text的值,它會起作用並被更新。 我不知道文本框對象和引號中的值有什麼不同? 下面是代碼:儘管命令正確,但表並未更新
protected void submit_Click(object sender, EventArgs e)
{
try
{
ZobLinqDataContext db = new ZobLinqDataContext();
string pasword = CryptorEngine.Encrypt(pass_txt.Text, true);
long uid = Convert.ToInt64(Request["uid"]);
db.pUpZDBUser(uid,
uname_txt.Text,
pasword,
fname_txt.Text.Trim(),
lname_txt.Text.Trim(),
modir.Checked,
voting.Checked,
Convert.ToInt32(Zarib_txt.Text),
false
);
db.SubmitChanges();
Response.Write(uname_txt);
}
finally
{
Session["sub"] = "1";
}
}
這是更新PROC:
USE [ZOBDB]
GO
/****** Object: StoredProcedure [dbo].[pUpZDBUser] Script Date: 04/11/2012 15:17:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[pUpZDBUser]
@UID bigint,
@Uname nvarchar(100),
@Pass nvarchar(100),
@fname nvarchar(50),
@lname nvarchar(50),
@KU bit,
@KV bit,
@ZribV int,
@del bit
As
BEGIN TRANSACTION UpUser
Set NOCOUNT ON
UPDATE Users SET
[email protected],
[email protected],
[email protected],
[email protected],
[email protected],
[email protected],
[email protected],
[email protected]
where ([email protected])
--RollBack if Err
IF @@ERROR != 0 and @@ROWCOUNT != 1
BEGIN
declare @msg nvarchar(30)
set @msg = ' error '[email protected]
ROLLBACK
RAISERROR(@msg,16,1)
RETURN
END
COMMIT TRANSACTION UpUser
RETURN
你能否也請在上下文中發佈與pUpZDBUser方法相關的SQL PROC? – StuartLC 2012-04-11 09:58:10
這是.NET不ASP經典。 – 2012-04-11 10:14:02
我已經添加了用於回答的proc,tnx,@nonnb – Behzad 2012-04-11 10:53:00