2016-04-06 5 views
3

Wie kann ich einen Bitwert aus einer Datenbanktabelle abrufen und dessen Wert in einem Kontrollkästchen anzeigen (z. B. wenn der Wert TRUE ist, ist das Kontrollkästchen aktiviert, ansonsten ist das Kontrollkästchen deaktiviert) Rasteransicht? Wie erhalte ich auch den Checkbox-Wert und füge ihn in eine Datenbanktabelle ein, die eine "Bit" -Datentypspalte hat?Bit-Wert aus der Datenbank abrufen und in CheckBox in GridView anzeigen

Hier meinem Tisch image

ist Und hier ist mein Gridview image

ist hier mein .CS Code:

public void lbinssert(Object sender,EventArgs e) 
{ 
    sql.InsertParameters["ColumnName"].DefaultValue = 
     ((TextBox)GridView1.FooterRow.FindControl("txtColName")).Text; 

    sql.InsertParameters["Dtype"].DefaultValue = 
     ((DropDownList)GridView1.FooterRow.FindControl("DropDownList2")).Text; 

    sql.InsertParameters["id"].DefaultValue = 
     ((DropDownList)GridView1.FooterRow.FindControl("DropDownList2")).Text; 

    sql.InsertParameters["null"].DefaultValue = 
     ((CheckBox)GridView1.FooterRow.FindControl("nulll")).Text; 

    sql.InsertParameters["primary"].DefaultValue = 
     ((CheckBox)GridView1.FooterRow.FindControl("primary")).Text; 

    sql.Insert(); 
} 

Hier ist meine ASPX Code:

 <asp:TemplateField HeaderText="Column_Name" SortExpression="Column_Name"> 
      <EditItemTemplate> 
       <asp:TextBox ID="txtName" runat="server" Text='<%#Bind("Column_Name")%>'></asp:TextBox> 
       <asp:RequiredFieldValidator Text="*" ID="colname" ControlToValidate="txtName" runat="server" ErrorMessage="Column Name is Required" ForeColor="Red"></asp:RequiredFieldValidator> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:Label ID="Label1" runat="server" Text='<%# Bind("Column_Name") %>'></asp:Label> 
      </ItemTemplate> 
      <FooterTemplate> 
       <asp:TextBox ID="txtColName" runat="server"></asp:TextBox> 
       <asp:RequiredFieldValidator ValidationGroup="INSERT" Text="*" ID="insertcolname" ControlToValidate="txtColName"runat="server" ErrorMessage="Column Name is Required" ForeColor="Red"></asp:RequiredFieldValidator> 
      </FooterTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Data_Type" SortExpression="Data_Type"> 
      <EditItemTemplate> 
       <asp:DropDownList ID="DropDownList1" runat="server" SelectedValue='<%# Bind("Data_Type") %>'> 
        <asp:ListItem>Select Datatype</asp:ListItem> 
        <asp:ListItem>int</asp:ListItem> 
        <asp:ListItem>Float</asp:ListItem> 
        <asp:ListItem>Varchar(50)</asp:ListItem> 
        <asp:ListItem>Varchar(100)</asp:ListItem> 
        <asp:ListItem>double</asp:ListItem> 
       </asp:DropDownList> 
       <asp:RequiredFieldValidator ID="datatype" ControlToValidate="DropDownList1" 
        runat="server" ErrorMessage="Data Type is Required" ForeColor="Red" InitialValue="Select Datatype"> 
       </asp:RequiredFieldValidator> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:Label ID="Label2" runat="server" Text='<%# Bind("Data_Type") %>'></asp:Label> 
      </ItemTemplate> 
      <FooterTemplate> 
       <asp:DropDownList ID="DropDownList2" runat="server"> 
        <asp:ListItem>Select Datatype</asp:ListItem> 
        <asp:ListItem>int</asp:ListItem> 
        <asp:ListItem>Float</asp:ListItem> 
        <asp:ListItem>Varchar(50)</asp:ListItem> 
        <asp:ListItem>Varchar(100)</asp:ListItem> 
        <asp:ListItem>double</asp:ListItem> 
       </asp:DropDownList> 
       <asp:RequiredFieldValidator ValidationGroup="INSERT" Text="*" ID="datatype" ControlToValidate="DropDownList2" 
        runat="server" ErrorMessage="Data Type is Required" ForeColor="Red" InitialValue="Select Datatype"> 
       </asp:RequiredFieldValidator> 
      </FooterTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Allow_Null_" SortExpression="Allow_Null_"> 
      <EditItemTemplate> 
       <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# DataBinder.Eval(Container.DataItem,"Allow_Null_").ToString().Equals("1") %>'/> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# DataBinder.Eval(Container.DataItem,"Allow_Null_").ToString().Equals("1") %>' enabled="false" /> 
      </ItemTemplate> 
      <FooterTemplate> 
       <asp:CheckBox ID="nulll" runat="server" /> 
      </FooterTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Primary_Key_" SortExpression="Primary_Key_"> 
      <EditItemTemplate> 
       <asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# DataBinder.Eval(Container.DataItem,"Primary_Key_").ToString().Equals("1") %>' /> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:CheckBox ID="CheckBox2" runat="server" 
        Checked='<%# DataBinder.Eval(Container.DataItem,"Primary_Key_").ToString().Equals("1") %>' Enabled="false" /> 
      </ItemTemplate> 
      <FooterTemplate> 
       <asp:CheckBox ID="primary" runat="server" /> 
      </FooterTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Date" SortExpression="Date"> 
      <EditItemTemplate> 
       <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Date") %>'></asp:TextBox> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:Label ID="Label3" runat="server" Text='<%# Bind("Date") %>'></asp:Label> 
      </ItemTemplate> 
      <FooterTemplate> 
       <asp:LinkButton ValidationGroup="INSERT" OnClick="lbinssert" ID="lblInsert" runat="server">Insert</asp:LinkButton> 
      </FooterTemplate> 
     </asp:TemplateField> 
     <asp:CommandField ShowEditButton="True" /> 
     <asp:CommandField ShowDeleteButton="True" /> 
    </Columns> 
    <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" /> 
    <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" /> 
    <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" /> 
    <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" /> 
    <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" /> 
    <SortedAscendingCellStyle BackColor="#FFF1D4" /> 
    <SortedAscendingHeaderStyle BackColor="#B95C30" /> 
    <SortedDescendingCellStyle BackColor="#F1E5CE" /> 
    <SortedDescendingHeaderStyle BackColor="#93451F" /> 
</asp:GridView> 

<asp:ValidationSummary ValidationGroup="INSERT" ID="ValidationSummary1" ForeColor="Red" 
    runat="server" Height="54px" style="margin-left: 140px" /> 

<asp:ValidationSummary ID="ValidationSummary2" ForeColor="Red" runat="server" 
    style="margin-left: 161px" /> 

<asp:SqlDataSource ID="sql" runat="server" 
    ConnectionString="<%$ ConnectionStrings:db_compilerConnectionString %>" 
    SelectCommand="SELECT [Column_Name], [Data_Type], [Allow_Null_], [Primary_Key_], [Date] FROM [tbl_field]" 
    DeleteCommand="DELETE * FROM [tbl_field] WHERE [Field_id][email protected]" InsertCommand="INSERT INTO [tbl_field] ([Column_Name],[Data_Type],[Database_id],[Allow_Null_],[Primary_Key_])Values (@ColumnName,@Dtype,@id,@null,@primary)" 
    UpdateCommand="UPDATE [tbl_field] SET [Column_Name][email protected],[Data_Type][email protected],[Database_id][email protected],[Allow_Null_][email protected],[Primary_Key_][email protected]"> 
    <DeleteParameters> 
     <asp:Parameter Name="field" Type="Int32" /> 
    </DeleteParameters> 
    <InsertParameters> 
     <asp:Parameter Name="ColumnName" Type="String" /> 
     <asp:Parameter Name="Dtype" Type="String" /> 
     <asp:Parameter Name="id" Type="String" /> 
     <asp:Parameter Name="null" Type="Boolean" /> 
     <asp:Parameter Name="primary" Type="Boolean" /> 
    </InsertParameters> 
    <UpdateParameters> 
     <asp:Parameter Name="ColumnName" Type="String" /> 
     <asp:Parameter Name="Dtype" Type="String" /> 
     <asp:Parameter Name="id" Type="String" /> 
     <asp:Parameter Name="null" Type="Boolean"/> 
     <asp:Parameter Name="primary" Type="Boolean" /> 
    </UpdateParameters> 
</asp:SqlDataSource> 

Der Wert wird in die Datenbank eingefügt, aber "Allow_Null_" und "P rimary_Key_ "zeigen" NULL "an. Bitte sagen Sie mir, wie ich dieses Problem lösen kann.

+0

Anstelle dieser Zeile 'sql.InsertParameters [ "null"]. Default = ((CheckBox) GridView1.FooterRow .FindControl ("nulll")). Text; ', Sie können' checked' Eigenschaft wie folgt verwenden - 'sql.InsertParameters [" use_properColumn "]. DefaultValue = ((CheckBox) GridView1.FooterRow.FindControl (" nulll ")) .Checked; ' –

+0

Aber ich definiere String, dessen Name in " null "ist "Null" nichts Name nur String ist, und string name kann alles sein, ich denke, es – Saira

+0

hier nicht Issue ist definieren Saira

Antwort

1

Probieren Sie diese Zeile -

sql.InsertParameters["null"].DefaultValue = 
    ((CheckBox)GridView1.FooterRow.FindControl("nulll")).Checked == true ? "true":"false"; 

sql.InsertParameters["primary"].DefaultValue = 
    ((CheckBox)GridView1.FooterRow.FindControl("primary")).Checked == true ? "true":"false"; 

Und wie pro Ihre Bemerkung, dass - in gridview Ausgang bleiben gleich, beide Spalte Checkbox untick.

Try Code unten

<ItemTemplate> 
     <asp:CheckBox ID="CheckBox1" runat="server" 
      Checked='<%# Convert.ToBoolean(DataBinder.Eval(Container.DataItem,"Allow_Null_")) %>' enabled="false" /> 
    </ItemTemplate> 

Keine Notwendigkeit dieser code-

Checked='<%# DataBinder.Eval(Container.DataItem,"Allow_Null_").ToString().Equals("1") %>' 
+0

soory zu sagen, aber Fehler kommen, wenn ich dieses 'Checked = '<% # DataBinder.Eval (Container.DataItem, "Allow_Null_")%>' enabled = "false" /> "', Hier ist der Fehler Angegebener Cast ist nicht gültig. Beschreibung: Eine nicht behandelte Ausnahme ist während der Ausführung von aufgetreten die aktuelle Webanforderung. Weitere Informationen zu dem Fehler und wo es in dem Code stammt, finden Sie in der Stapelüberwachung. Ausnahme: System.InvalidCastException: Angegebene Umwandlung ist nicht gültig. Saira

+0

@Saira: Oh mein Fehler .... Bitte überprüfen Sie meine aktualisierte Antwort. Sie müssen dafür die Methode 'Convert.ToBoolean' verwenden. –

+0

lassen Sie mich jetzt überprüfen – Saira

Verwandte Themen