Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我输入的数据没有存储在数据库中?_C#_Asp.net_Sql Server - Fatal编程技术网

C# 为什么我输入的数据没有存储在数据库中?

C# 为什么我输入的数据没有存储在数据库中?,c#,asp.net,sql-server,C#,Asp.net,Sql Server,调用SqlDataAdapter.Fill以执行INSERT命令是不正确的。Fill方法用于使用SELECT语句从数据库检索记录。在代码中,INSERT语句作为适配器的SelectCommand传递,并在调用Fill时执行,以便将记录添加到数据库表中。但是DataTable代码对象中没有返回值,因为Fill方法使用的SelectCommand没有为其分配SELECT语句 您需要拆分这两个操作,首先对INSERT语句执行ExecuteNonQuery,然后使用正确的SELECT语句创建适配器 pu

调用SqlDataAdapter.Fill以执行INSERT命令是不正确的。Fill方法用于使用SELECT语句从数据库检索记录。在代码中,INSERT语句作为适配器的SelectCommand传递,并在调用Fill时执行,以便将记录添加到数据库表中。但是DataTable代码对象中没有返回值,因为Fill方法使用的SelectCommand没有为其分配SELECT语句

您需要拆分这两个操作,首先对INSERT语句执行ExecuteNonQuery,然后使用正确的SELECT语句创建适配器

public List<TextBox> _textBoxes = new List<TextBox>();

protected void btmSubmit_Click1(object sender, EventArgs e)
{
    dbDataItem();
}
public void dbDataItem()
{
    dc.cnn.Open();
    _textBoxes = getTextBox();
    //foreach (TextBox text in _textBoxes)
    //{
    //    _textBoxes.Add(text.Text.Trim());
    //    //StoreValue(text.Text);
    //}
    foreach (TextBox textBox in _textBoxes)
    {
        //TextBox txt = new TextBox();

        //txt.ID = Panel2.FindControl("textBox").ToString();
        string value = textBox.Text;

        string query = "select name from DataItem where name = '" + value + "'";
        SqlCommand cmd = new SqlCommand(query, dc.cnn);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        da.Fill(dt);            
        int count = dt.Rows.Count;


        if (count == 0)
        {
            int i = MaxCode1();
            SqlCommand cmd2 = new SqlCommand("insert into DataItem (code,name) values (@code,@name)", dc.cnn);
            cmd2.Parameters.AddWithValue("@code", i);
            cmd2.Parameters.AddWithValue("@name", value);
            SqlDataAdapter da2 = new SqlDataAdapter(cmd2);
            DataTable dt2 = new DataTable();
            da2.Fill(dt2);
            dc.cnn.Close();
        }
        else
        {

            Response.Write("<script language='javascript'>alert('This DataItem already exist in database');</script>");

        }
    }

    dc.cnn.Close();
}
您没有运行cmd2

设置参数后,按如下方式运行:

SqlCommand cmd2 = new SqlCommand("insert into DataItem (code,name) values (@code,@name)", dc.cnn);
cmd2.Parameters.AddWithValue("@code", i);
cmd2.Parameters.AddWithValue("@name", value);
cmd2.ExecuteNonQuery()

SqlDataAdapter da2 = new SqlDataAdapter("SELECT * FROM DataItem");
DataTable dt2 = new DataTable();
da2.Fill(dt2);
因此,您的代码如下所示:

cm2.ExecuteNonQuery();

您认为这个标题足以描述您的问题吗?您对DataAdapter和DataTable做了什么?您为什么不直接执行SqlCommand?是否有异常或错误消息?非常感谢先生………我找到了解决方案。。。。。
SqlCommand cmd2 = new SqlCommand("insert into DataItem (code,name) values (@code,@name)", dc.cnn);
cmd2.Parameters.AddWithValue("@code", i);
cmd2.Parameters.AddWithValue("@name", value);
cmd2.ExecuteNonQuery();
dc.cnn.Close();