Gewusst wie: abrufen von asp:CheckBox-Wert aus der SQL-db?
Ich habe eine Tabelle mit Kontrollkästchen eingefügt werden in einer SQL-db als 'Wahr' und 'Falsch'. Allerdings möchte ich diese Werte abrufen wieder mit einem load-Ereignis, aber ich bin nicht in der Lage, Sie zu bekommen. Das ist mein code:
protected void Page_Load(object sender, EventArgs e)
{
if (auditChecklist != null)
{
//for loading audit checklist
getAuditChecklist();
}
}
Habe ich versucht, rufen Sie mit der Funktion unten, von denen ich dachte, Sie könnte es tun:
private void getAuditChecklist()
{
//int i = 0;
SqlCommand cmd = null;
string conn = ConfigurationManager.ConnectionStrings["PSCV1ConnectionString"].ConnectionString;
string queryString = @"SELECT * FROM AUDIT_CHECKLIST " +
"WHERE SITE_ID = @SiteID";
using (SqlConnection connection =
new SqlConnection(conn))
{
SqlCommand command =
new SqlCommand(queryString, connection);
connection.Open();
cmd = new SqlCommand(queryString);
cmd.Connection = connection;
cmd.Parameters.Add(new SqlParameter("@SiteID", //the name of the parameter to map
System.Data.SqlDbType.NVarChar, //SqlDbType value
20, //The width of the parameter
"Site_ID")); //The name of the column source
//Fill the parameter with the value retrieved
//from the text field
cmd.Parameters["@SiteID"].Value = foo.Site_ID;
SqlDataReader reader = cmd.ExecuteReader();
if (CheckBox1.Checked == true)
{
while (reader.Read())
{
cmd.Parameters.Add(new SqlParameter("@Mount", //the name of the parameter to map
System.Data.SqlDbType.NVarChar, //SqlDbType value
20, //The width of the parameter
"Mount")); //The name of the column source
//Fill the parameter with the value retrieved
//from the text field
cmd.Parameters["@Mount"].Value = "True";
}
}
else
{
cmd.Parameters.Add(new SqlParameter("@Mount", //the name of the parameter to map
System.Data.SqlDbType.NVarChar, //SqlDbType value
20, //The width of the parameter
"Mount")); //The name of the column source
//Fill the parameter with the value retrieved
//from the text field
cmd.Parameters["@Mount"].Value = "False";
}
reader.Close();
}
}
Vielen Dank für die Hilfe!
- Sind Sie versuchen, um die Werte abzurufen, und legen Sie die Steuerelemente, um die db-Werte oder speichern Sie das Steuerelement Werte auf der Datenbank? Die getAuditChecklist-Methode ruft nur dann den Status aus der Datenbank nicht die andere Weise herum.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn ich Ihr Frage richtig...Das problem ist in Ihrem Datentypen.
Ich denke, es ist ein bit-Feld.
CheckBoxname.checked= true
select-Abfrage und führen Sie Sie mit der executereader -SqlDataReader dr=commandobjectname.ExecuteReader(); While(dr.Read()) { _checkboxName_.checked=dr["Mount"]; }
Beachten Sie, dass der Berg ist die Spalte name.Du erwähnen, dass deine Werte sind eingefügt, als 'Wahr' und 'Falsch', noch übergeben Sie 1 und 0 in ein nvarchar-Feld. Ist das Datenbank-Feld vom Datentyp nvarchar oder ein bisschen?
Wenn es ein bit-Feld, ändern Sie parameter, um ein bit Daten Typ:
Wenn es ein nvarchar-Feld, sollten Sie überdenken Ihr schema, weil Sie sollten wirklich über einen bit-Datentyp. Aber, zum Wohle der Frage, wie man das tun könnte in etwa so:
Jedoch, Sie sind das hinzufügen der
@Mount
parameter, aber IhrequeryString
macht keinen Verweis auf eine@Mount
parameter. Ich bin mir nicht sicher, was deine Absicht ist, aber ich kann mir vorstellen das ist, wo Ihr Problem liegt.Ich würde empfehlen, Sie beginnen HIER beginnen das Lesen der Daten aus der Datenbank.
bit
Feld, so dass, wenn Sie aufnehmen wollen, die Tatsache, dass Sie ein Kontrollkästchen markiert ist, sollten Sie nicht verwenden einenvarchar
für die, die in Ihrer Datenbank. Was ist, wenn ein Benutzer das Feld bekam unabsichtlich geändert von 'True' auf 'Versuche'? Dann verlieren Sie das Stück der Daten, da Sie nicht genau abzufragen. Einbit
Feld entfernt, die Möglichkeit.