When a field in a database is not required, it is often a mistake to insert an empty string when inserting data into the database. Here, using DBNull can solve this problem.
/// <summary> ///Inserting Data/// </summary> /// <param name= "Sender" ></param> /// <param name= "E" ></param> Private voidButton2_Click (Objectsender, RoutedEventArgs e) { stringName =txtName.Text; stringAge =Txtage.text; stringHeight =Txtheight.text; Objectobjname; if(name. Length <=0) {objname=DBNull.Value; } Else{objname=name; } ObjectObjage; if(age. Length <=0) {Objage=DBNull.Value; } Else{objage=Age ; } ObjectObjheight; if(height. Length <=0) {Objheight=DBNull.Value; } Else{objheight=height; } sqlhelper.executenonquery (@"INSERT INTO T_person (name,age,height) VALUES (@Name, @Age, @Height)", NewSqlParameter ("@Name", objname),NewSqlParameter ("@Age", Objage),NewSqlParameter ("@Height", Objheight)); } /// <summary> ///Read the data/// </summary> /// <param name= "Sender" ></param> /// <param name= "E" ></param> Private voidButton3_Click (Objectsender, RoutedEventArgs e) {DataSet DS= SqlHelper.ExecuteDataset ("SELECT * from T_person where id=2"); stringname; if(ds. tables[0]. rows[0]["Name"] ==dbnull.value) {name=NULL; } Else{Name= ds. tables[0]. rows[0]["Name"]. ToString (); } int?Age ; if(ds. tables[0]. rows[0][" Age"] ==DBNull.Value) { age=NULL; } Else{ Age=int. Parse (ds. tables[0]. rows[0][" Age"]. ToString ()); } txtName.Text=name; Txtage.text=Age . ToString (); Txtheight.text=ds. tables[0]. rows[0]["Height"]. ToString (); }
DBNull Problems in C #