更改爲:
SqlCommand command = new SqlCommand("INSERT INTO Employee VALUES ('" + employeeID.Text + "','" + name.Text + "','" + age.Text + "','" + phone.Text + "',null)", connection);
DBNull.Value.ToString()
返回空字符串,但您想要空值。
但是,這種構建查詢的方式可能會導致問題。例如,如果其中一個字符串包含引號,則結果查詢會引發錯誤。更好的方法是使用參數並在SqlCommand對象上設置:
SqlCommand command = new SqlCommand("INSERT INTO Employee VALUES (@empId,@name,@age,@phone,null)", connection);
command.Parameters.Add(new SqlParameter("@empId", employeeId.Text));
command.Parameters.Add(new SqlParameter("@name", name.Text));
command.Parameters.Add(new SqlParameter("@age", age.Text));
command.Parameters.Add(new SqlParameter("@phone", phone.Text));
絕不會生成如此的SQL查詢,而是使用命令參數。否則,有人會輸入名稱爲「)的僱員; DELETE * FROM EMPLOYEE; - 」 –
這似乎允許[SQLi](http://en.wikipedia.org/wiki/Sql_injection)。你意識到這些影響? –
非常感謝 – Steve