none
【新手問題】GridView控件“編輯”功能無法正常使用的問題 RRS feed

  • 問題

  • 在頁面中寫下如下代碼:

    Code Snippet

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="

        <%$ ConnectionStrings:StorageManageSystemConnectionString1 %>"
    SelectCommand="SELECT * FROM [UserInformation]"
    UpdateCommand="UPDATE UserInformation SET UserName = @UserName,

        UserPassword = @UserPassword,UserPeiview = @UserPeiview  WHERE UserNo = @UserNo"
    DeleteCommand="DELETE FROM UserInformation WHERE UserNo = @UserNo"></asp:SqlDataSource>

     

     

    總是報錯“必須設置UserNo的值”。當如何解決?煩請高手指教哦~謝謝先
    2007年9月14日 上午 03:59

解答

  • 參考下列這段 可能您在程式碼中沒有賦予UserNo值

     

    <aspTongue TiedqlDataSource
              id="SqlDataSource1"
              runat="server"
              ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
              SelectCommand="SELECT EmployeeID, LastName, Address FROM Employees"
              UpdateCommand="UPDATE Employees SET Address=@Address WHERE EmployeeID=@EmployeeID">
              <UpdateParameters>
                  <asp:ControlParameter Name="Address" ControlId="TextBox1" PropertyName="Text"/>
                  <asp:ControlParameter Name="EmployeeID" ControlId="DropDownList1" PropertyName="SelectedValue"/>
              </UpdateParameters
    >
          </aspTongue TiedqlDataSource>

     

     

    來源:http://msdn2.microsoft.com/zh-tw/library/system.web.ui.webcontrols.sqldatasource(VS.80).aspx

    2007年9月14日 上午 07:15
    版主
  • 一、

          Index是從0開始算的,所以小1沒錯..

     

     

    二、

     

         MyAccessDataSource.UpdateParameters.Add(new Parameter("date",TypeCode.DateTime,DateTime.Now.ToString()));
         MyAccessDataSource.UpdateParameters.Add(new Parameter("orderid",TypeCode.String,oid));
         MyAccessDataSource.Update();
         MyAccessDataSource.UpdateParameters.Clear();

     

    參考網址:

    http://msdn2.microsoft.com/zh-tw/library/system.web.ui.webcontrols.sqldatasource.connectionstring(VS.80).aspx

    2007年9月14日 上午 08:40
    版主

所有回覆

  • 參考下列這段 可能您在程式碼中沒有賦予UserNo值

     

    <aspTongue TiedqlDataSource
              id="SqlDataSource1"
              runat="server"
              ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
              SelectCommand="SELECT EmployeeID, LastName, Address FROM Employees"
              UpdateCommand="UPDATE Employees SET Address=@Address WHERE EmployeeID=@EmployeeID">
              <UpdateParameters>
                  <asp:ControlParameter Name="Address" ControlId="TextBox1" PropertyName="Text"/>
                  <asp:ControlParameter Name="EmployeeID" ControlId="DropDownList1" PropertyName="SelectedValue"/>
              </UpdateParameters
    >
          </aspTongue TiedqlDataSource>

     

     

    來源:http://msdn2.microsoft.com/zh-tw/library/system.web.ui.webcontrols.sqldatasource(VS.80).aspx

    2007年9月14日 上午 07:15
    版主
  •  

    非常感謝您的回復!!

     

    按照您提供的方法已正確傳入了EmployeeID值,新的問題:若想要給EmployeeID傳入的是GridView當前正在被編輯行的行號當如何處理?使用GridView.EditIndex屬性?可該屬性比實際選中的行號要小1啊?asp代碼中如何處理呢?

     

    順便問一句,上面代碼的功能可以在CS文件中使用C#語言來實現嗎?

     

    感謝您的指導,煩請回復。

     

    2007年9月14日 上午 08:32
  • 一、

          Index是從0開始算的,所以小1沒錯..

     

     

    二、

     

         MyAccessDataSource.UpdateParameters.Add(new Parameter("date",TypeCode.DateTime,DateTime.Now.ToString()));
         MyAccessDataSource.UpdateParameters.Add(new Parameter("orderid",TypeCode.String,oid));
         MyAccessDataSource.Update();
         MyAccessDataSource.UpdateParameters.Clear();

     

    參考網址:

    http://msdn2.microsoft.com/zh-tw/library/system.web.ui.webcontrols.sqldatasource.connectionstring(VS.80).aspx

    2007年9月14日 上午 08:40
    版主
  •  

    還是第一個問題,Index小1是沒錯..那如何把正確的數值傳給sql語句呢?

    PropertyName="GridView.EditIndex"后面直接“+1”不符合語法啊。

     

     

    麻煩指教

     

    2007年9月14日 上午 09:32