无法将数据添加到数据库中

时间:2014-04-17 07:43:55

标签: sql-server-2008

我在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();
    }

1 个答案:

答案 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 + "' )";