ASP.NET 更新資料要這麼麻煩嗎? |
尚未結案
|
will
中階會員 發表:176 回覆:135 積分:62 註冊:2002-04-14 發送簡訊給我 |
小弟學習asp.net的程式, 看了書上及網路上的範例
不禁令人困惑, 更新一筆資料, 要這麼麻煩嗎?
例如Starter kit的範例中, 更新一個聯絡人的5 個欄位
借助Store procedure 之下 還要寫這麼多程式
請問 ASP.NET 更新資料要這麼麻煩嗎?
-----------------------------------------------------------------------------------------
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
SqlCommand myCommand = new SqlCommand("Portal_UpdateContact", myConnection); // Mark the Command as a SPROC
myCommand.CommandType = CommandType.StoredProcedure; // Add Parameters to SPROC
SqlParameter parameterItemID = new SqlParameter("@ItemID", SqlDbType.Int, 4);
parameterItemID.Value = itemId;
myCommand.Parameters.Add(parameterItemID); SqlParameter parameterUserName = new SqlParameter("@UserName", SqlDbType.NVarChar, 100);
parameterUserName.Value = userName;
myCommand.Parameters.Add(parameterUserName); SqlParameter parameterName = new SqlParameter("@Name", SqlDbType.NVarChar, 100);
parameterName.Value = name;
myCommand.Parameters.Add(parameterName); SqlParameter parameterRole = new SqlParameter("@Role", SqlDbType.NVarChar, 100);
parameterRole.Value = role;
myCommand.Parameters.Add(parameterRole); SqlParameter parameterEmail = new SqlParameter("@Email", SqlDbType.NVarChar, 100);
parameterEmail.Value = email;
myCommand.Parameters.Add(parameterEmail); SqlParameter parameterContact1 = new SqlParameter("@Contact1", SqlDbType.NVarChar, 100);
parameterContact1.Value = contact1;
myCommand.Parameters.Add(parameterContact1); SqlParameter parameterContact2 = new SqlParameter("@Contact2", SqlDbType.NVarChar, 100);
parameterContact2.Value = contact2;
myCommand.Parameters.Add(parameterContact2); myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
Hi, 若是配合 stored procedure 的話, 差不多是這樣了, 因為該範例的 sp 參數很多, 所以得一個一個建, 一個一個給值, 若是習慣使用 sql command 的方式, 一樣可以使用, 如下,
SqlConnection conn=new SqlConnection("Password=xxx;Persist Security Info=True;User ID=xxx;Initial Catalog=test;Data Source=server_ip"); conn.Open(); SqlCommand cmd = new SqlCommand("update customer set name='test', age=25 where id=2103", conn); cmd.ExecuteNonQuery(); conn.Close(); |
OsX
版主 發表:6 回覆:151 積分:111 註冊:2003-05-03 發送簡訊給我 |
若是你要使用 StoreProcedure, 在 StoreProcedure 的 Parameters
部份, 可以不用一個一個 用 Add 的方式, 你可以使用SqlCommandBuilder
這個類別來幫你填入所有的 Parameters, 使用方式大致如下:
aCommand.CommandType = CommandType.StoredProcedure; aCommand.CommandText = "Portal_UpdateContact"; SqlCommandBuilder.DeriveParameters( aCommand );不個在 .Net framework 1.1 上的 SqlCommandBuilder 在 DeriveParameters 這個方法上有 Bug, 若你有使用 Transaction 的話, 記得使用 SqlCommandBuilder.DeriveParameters 這個方法, 必須在呼叫 Connection.BeginTransaction 之前, 若是 包在 Connection.BeginTransaction 之中, 你將會得到一個錯誤訊息 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |