Jump to content

updating a DB with nulls


10 weber

Recommended Posts

Using ASP.NET (C#):This is a part of the Page_Load() method:

if (data.Read()) //if the user has already voted{    [b]sql = "UPDATE survey SET html='" + Request.Form["lang1"];    sql += "', css='" + Request.Form["lang2"];    sql += "', js='" + Request.Form["lang3"];    sql += "', xml='" + Request.Form["lang4"];    sql += "', asp='" + Request.Form["lang5"];    sql += "', aspnet='" + Request.Form["lang6"];    sql += "', php='" + Request.Form["lang7"];    sql += "', sql='" + Request.Form["lang8"];    sql += "' WHERE userName='" + (string)Session["userName"] + "'";    data = Query(Server.MapPath("App_Data/10WEBERdatabase.mdf"), sql);[/b]}else{    row["userName"] = Session["userName"];    row["html"] = Request.Form["lang1"];    row["css"] = Request.Form["lang2"];    row["js"] = Request.Form["lang3"];    row["xml"] = Request.Form["lang4"];    row["asp"] = Request.Form["lang5"];    row["aspnet"] = Request.Form["lang6"];    row["php"] = Request.Form["lang7"];    row["sql"] = Request.Form["lang8"];    tbl.Rows.Add(row);    SqlCommandBuilder cmndBuilder = new SqlCommandBuilder(da);    da.Update(ds, "survey");}

and this is the full Query() method:

public static SqlDataReader Query(string path, string sql){    string cnctString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=" + path + ";Integrated Security=True;User Instance=True";    SqlConnection cnct = new SqlConnection(cnctString);    cnct.Open();    SqlCommand cmnd = new SqlCommand(sql, cnct);    SqlDataReader data = cmnd.ExecuteReader();    return data;}

I succeeded to insert nulls when creating a new row in the DB (when the user votes for the first time), but when users try to change their votes it doesn't work (it inserts space into the cell instead).note: lang1 to lang8 refer to checkboxes.

Link to comment
Share on other sites

If the lang1 through lang8 values are what you want to have as null, then what you're seeing happen is correct. When you do this:UPDATE table SET field=''That's not a null value, that's an empty string. Those aren't the same. If you want to update the value to null you do this:UPDATE table SET field=NULLNotice the lack of quotes.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...