我正在使用adapter.InsertCommand將一些數據插入表中。SQL插入查詢執行兩次
唯一的問題是它執行了兩次,因此給我在數據庫中的雙重條目。 我試過按照adapter.InsertCommand
和我自己的代碼的文檔中的例子,但得到相同的結果。
這是我的代碼:我在怎樣才能避免這種
public class nokernokDAL
{
SqlConnection connection = new SqlConnection();
SqlDataAdapter adapter = new SqlDataAdapter();
public nokernokDAL()
{
connection.ConnectionString = EPiServer.Global.EPConfig["EPsConnection"].ToString();
connection.Open();
}
public void addNewComment(int userID, int pageID, string title, string comment)
{
string query = "INSERT INTO dbo.nokernok_kommentarer (userID, pageID, commentTitle, comment) " +
"VALUES ("+ userID +", "+ pageID +", '"+ title +"', '"+ comment +"')";
adapter.InsertCommand = new SqlCommand(query, connection);
adapter.InsertCommand.ExecuteNonQuery();
}
}
安妮建議?
UPDATE
權,一些調試後,我發現我的newWallComplaint_Click
功能被解僱了兩次。這是becuae我有以下代碼:
protected void Page_Load(object sender, EventArgs e)
{
btnNewWallComplaint.Click += new EventHandler(this.newWallComplaint_Click);
}
不檢查回發,這也執行我的功能後提交也。所以爲了避免我的函數運行兩次,我添加了一個PostBack檢查。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
btnNewWallComplaint.Click += new EventHandler(this.newWallComplaint_Click);
}
}
現在我的查詢沒有運行兩次。
做一些調試,並找出函數是否正在運行不知何故兩次或者如果實際執行SQL兩次。 – 2010-07-22 13:08:57
我想你的標題說明了這一切 - 「SQL插入查詢確實執行了兩次」! – 2010-07-22 13:19:31
我已經看到用戶「雙擊」一個按鈕(按鈕只需要一次單擊),導致底層代碼運行兩次,你確定這樣的事情沒有發生在這裏嗎? – 2010-07-22 13:26:42