3

.aspxページは次のようになります

<form id="Form1" runat="server">  
<asp:Repeater ID="Repeater1" runat="server">
    <HeaderTemplate>
            <table border="0" width="600px" cellpadding="2" cellspacing="1" style="border: 1px solid maroon;">
        <tr bgcolor="maroon">
            <th>    Subject_Id    </th>
            <th>    Subject_Name    </th>
            <th>    Fill_Marks    </th>
        </tr>
</HeaderTemplate>

<ItemTemplate>
    <tr>
        <td width="100">
                <asp:TextBox ID="Subject_Id" runat="Server" Text='<%#Eval("Subject_Id")%>'></asp:TextBox>
        </td>
        <td>
                <asp:TextBox ID="Subject_Name" runat="Server" Text='<%#Eval("Subject_Name")%>'></asp:TextBox>
        </td>
        <td>
                <asp:TextBox ID="Marks" runat="server"></asp:TextBox>
        </td>
    </tr>
</ItemTemplate>

    <FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>

    <asp:Button ID="btnInsert" runat="server" onclick="btnInsert_Click" Text="Insert" CommandArgument="" CommandName=""/>
    <asp:Button ID="btnUpdate" runat="server" onclick="btnUpdate_Click" Text="Update" CommandArgument="" CommandName=""/>    

    </form>

C#-コードビハインド...

  protected void btnInsert_Click(object sender, EventArgs e)
  {
   cn = new SqlConnection(ConfigurationManager.ConnectionStrings["DbConnect"].ConnectionString);
   cn.Open();

  foreach (RepeaterItem item in Repeater1.Items)
  {
      TextBox Subject_Id = (TextBox)item.FindControl("Subject_Id");
      TextBox Subject_Name = (TextBox)item.FindControl("Subject_Name");
      TextBox Marks = (TextBox)item.FindControl("Marks");

      SqlCommand cmd = new SqlCommand("Insert into result VALUES (id='"+@Subject_Id+"',name='"+@Subject_Name+"',marks='"+@Marks+"')", cn);

      Repeater1.DataSource = cmd.ExecuteReader();
      Repeater1.DataBind();

      cn.Close();
      cmd.Connection.Close();
      cmd.Connection.Dispose();
  }
}

次に、そのデータを次のテーブルに挿入します。

result_table

id    varchar(10)
name  varchar(20)
marks varchar(3)

挿入および更新機能を実行して、データベースからデータを取得するにはどうすればよいですか...簡単な方法で??ありがとう...

4

3 に答える 3

0

ボタンタグにいくつかのプロパティを挿入します:CommandArgument = "" CommandName = ""

Repeater1.ItemCommand +=new RepeaterCommandEventHandler(Repeater1_ItemCommand);

protected void Repeater1_ItemCommand(object source、RepeaterCommandEventArgs e){書き込みたいコード.........}という名前の関数を作成します

于 2012-05-04T10:05:28.713 に答える
0

次のようにbtnInsert_Click関数を実装します

**新しい機能に従って編集

  protected void btnInsert_Click(object sender, EventArgs e)
  {
    String connectionString = ConfigurationManager.ConnectionStrings["DbConnect"].ConnectionString;
    String queryString = "";
     using (SqlConnection connection = new SqlConnection(connectionString))
    {
        foreach (RepeaterItem item in Repeater1.Items)
       {
        TextBox Subject_Id = (TextBox)item.FindControl("Subject_Id");
        TextBox Subject_Name = (TextBox)item.FindControl("Subject_Name");
        TextBox Marks = (TextBox)item.FindControl("Marks");

        queryString = "Insert into result VALUES (id='"+@Subject_Id+"',name='"+@Subject_Name+"',marks='"+@Marks+"')";

        SqlCommand command = new SqlCommand(queryString, connection);

        // execute the query to update the database
        cmd.ExecuteNonQuery();
        }
    }
    //call the function to load the gridview if it is lost on postback.
  }

ボタンのクリックでアクションを簡単に繰り返すことができるように、データベースとグリッドビューの入力コードを別々の関数に移動することをお勧めします。

于 2012-05-04T10:45:31.270 に答える
0
Dim permissionList As New List(Of OPASWCFApp.PROJECT_NOTE_CONTACT_MAP)
  For Each rItem As RepeaterItem In rptProducts.Items
     Dim qty1 As Integer
     Dim qty2 As Integer
     Dim hdnvalue As Integer
     Dim txtBox1 As TextBox = DirectCast(rItem.FindControl("numAdmin1"), TextBox)
     Dim txtBox2 As TextBox = DirectCast(rItem.FindControl("numAdmin2"), TextBox)
     Dim hdnf As HiddenField = DirectCast(rItem.FindControl("hdnContacttype"), HiddenField)
     qty1 = Convert.ToInt32(txtBox1.Text)
     qty2 = Convert.ToInt32(txtBox2.Text)
     hdnvalue = Convert.ToInt32(hdnf.Value)

     If qty1 > 0 Or qty2 > 0 Then
        Dim _d As OPASWCFApp.PROJECT_NOTE_CONTACT_MAP = 
                     New OPASWCFApp.PROJECT_NOTE_CONTACT_MAP()
        _d.PROJECT_NOTE_CONTACT_MAP_CONTACT_TYPE_ID = hdnvalue
        _d.PROJECT_NOTE_CONTACT_MAP_DURATION = CInt((qty1 * 60) + qty2)
        _d.PROJECT_NOTE_CONTACT_MAP_CONTACT_TYPE_ID = hdnvalue
        permissionList.Add(_d)
     End If
 Next
 ProcessDataResult.ContactMap = permissionList.ToArray()
于 2015-12-08T05:03:32.867 に答える