首先是表设计: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#:
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();
}
}
(
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#:
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();
}
}
哪位解释一下。
谢谢。
参数化查询 '(@PageUrl nvarchar(13),@PageTitle nvarchar(10),@CountOfClick big' 需要参数 '@CountOfClick',但未提供该参数。
cmd.CommandText = "insert into Page(PageUrl, PageTitle, CountOfClick) values(@PageUrl, @PageTitle, default)";
然后把 cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@CountOfClick", 0));这句删掉
就行了
我把字段CountOfClick改成没有默认值,按照我顶楼的代码插入还是报同样的错。
string PageTitle = "百度";
int defaultnum = 0;
string connstr = @"Data Source=.;DataBase=StudentManage;User ID=sa;Password=abc12345";
SqlConnection conn = null;
SqlCommand cmd = null; try
{
conn = new SqlConnection(connstr);
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", PageUrl));
cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@PageTitle", PageTitle));
cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@CountOfClick", defaultnum));
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();
}
}试了一下,这样不会出错