我在SQL Server 2008中创建了一个8列表。我将数据输入到表的第1列中,剩下的列留下了空值。
我正在尝试根据在前2列中输入的数据将数据添加到剩余的6列,但我无法添加数据。将另外6列留下“允许空值”导致此问题。
如果是,有什么解决办法吗?
感谢。
string str = (@"Data Source=.\;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True;");
try
{
String sql = "(insert into usn (firstname, lastname, password, address, bloodgrp, contactnum, email) values (@st1, @st2, @st3, @st4, @st5, @st6, @st7) WHERE usn = '" + omd + "' )";
SqlConnection conn = new SqlConnection(str);
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
{
cmd.Parameters.AddWithValue("@st1", TextBox1.Text);
cmd.Parameters.AddWithValue("@st2", TextBox2.Text);
cmd.Parameters.AddWithValue("@st3", TextBox3.Text);
cmd.Parameters.AddWithValue("@st4", TextBox10.Text);
cmd.Parameters.AddWithValue("@st5", TextBox6.Text);
cmd.Parameters.AddWithValue("@st6", TextBox7.Text);
cmd.Parameters.AddWithValue("@st7", TextBox8.Text);
cmd.ExecuteNonQuery();
Response.Redirect("accountcreated.aspx");
conn.Close();
}
答案 0 :(得分:0)
如果您的表中已有记录,则需要使用UPDATE
,而不是INSERT
。
因此,您的查询应该类似于
UPDATE usn
SET firstname = @st1,
lastname = @st2,
password = @st3,
address = @st4,
bloodgrp = @st5,
contactnum = @st6,
email = @st7
WHERE usn = ...
您不能INSERT
进入某列,只使用INSERT
将数据放入表中(创建记录)。
所以,你的sql String看起来应该是这样的。
String sql = "(UPDATE usn SET firstname = @st1, lastname = @st2, password = @st3, address = @st4, bloodgrp = @st5, contactnum = @st6, email = @st7 WHERE usn = '" + omd + "' )";