日期:2014-05-18  浏览次数:20589 次

ado.net往sqlserver08插入数据报错。我把代码贴出来,麻烦大家帮我看看。谢谢!
首先是表设计:
SQL code
create table Page
(
    PageID int identity(1, 1) not null primary key,
    PageUrl nvarchar(500) not null,
    PageTitle nvarchar(100) not null,
    CountOfClick int not null default 0
);


然后是c#:
C# code

            SqlConnection conn = null;
            SqlCommand cmd = null;

            try
            {
                conn = new SqlConnection("Data Source=localhost;Initial Catalog=Test;Integrated Security=SSPI;");
                conn.Open();
                cmd = conn.CreateCommand();
                cmd.CommandText = "insert into Page(PageUrl, PageTitle, CountOfClick) values(@PageUrl, @PageTitle, @CountOfClick)";
                cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@PageUrl", page.PageUrl));
                cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@PageTitle", page.PageTitle));
                cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@CountOfClick", 0));
                cmd.ExecuteNonQuery();     //【注意】这里报错:参数化查询 '(@PageUrl nvarchar(13),@PageTitle nvarchar(10),@CountOfClick big' 需要参数 '@CountOfClick',但未提供该参数。

                return true;
            }
            catch
            {
                return false;
            }
            finally
            {
                if (cmd != null)
                {
                    cmd.Dispose();
                }
                if (conn != null)
                {
                    conn.Close();
                    conn.Dispose();
                }
            }


------解决方案--------------------
报的神马错
------解决方案--------------------
探讨

引用:

报的神马错
在cmd.ExecuteNonQuery()这里报错:
参数化查询 '(@PageUrl nvarchar(13),@PageTitle nvarchar(10),@CountOfClick big' 需要参数 '@CountOfClick',但未提供该参数。

------解决方案--------------------
探讨

引用:
既然有默认值,就不要把默认值那个字段作为参数传递,把sql语句改成
cmd.CommandText = "insert into Page(PageUrl, PageTitle, CountOfClick) values(@PageUrl, @PageTitle, default)";
然后把 cmd.Parameters.Add(new S……