当所有要插入的数据都填写时插入没有问题,如果有空值,则出现"参数化查询 '(@Titles nvarchar(8),@Contents nvarchar(6),@Author nvarchar(4000' 需要参数 @Author,但未提供该参数。"的错误!
请大家看看我的代码 public static int InsertNews(string Titles, string Author, string Source, bool Pic, string PicUrl, string Species, bool UpFile, string FileUrl, string Contents)
{
string connectionString = ConfigurationManager.ConnectionStrings["dataWeb"].ConnectionString;
System.Data.IDbConnection dbConnection = new System.Data.SqlClient.SqlConnection(connectionString);
string commandString = "INSERT INTO [News] ([Titles],[Contents],[Author],[Source],[Pic],[PicUrl],[Species],[UpFile],[FileUrl]) Values (@Titles,@Contents,isnull(@Author,''),isnull(@Source,''),@Pic,isnull(@PicUrl,''),@Species,@UpFile,isnull(@FileUrl,''))";
System.Data.IDbCommand dbCommand = new System.Data.SqlClient.SqlCommand(); dbCommand.CommandText = commandString;
dbCommand.Connection = dbConnection; System.Data.IDataParameter dbParam_Titles = new System.Data.SqlClient.SqlParameter(); dbParam_Titles.ParameterName = "@Titles";
dbParam_Titles.Value = Titles;
dbParam_Titles.DbType = System.Data.DbType.String;
dbCommand.Parameters.Add(dbParam_Titles); System.Data.IDataParameter dbParam_Contents = new System.Data.SqlClient.SqlParameter(); dbParam_Contents.ParameterName = "@Contents";
dbParam_Contents.Value = Contents;
dbParam_Contents.DbType = System.Data.DbType.String;
dbCommand.Parameters.Add(dbParam_Contents); System.Data.IDataParameter dbParam_Author = new System.Data.SqlClient.SqlParameter(); dbParam_Author.ParameterName = "@Author";
dbParam_Author.Value = Author;
dbParam_Author.DbType = System.Data.DbType.String;
dbCommand.Parameters.Add(dbParam_Author);
System.Data.IDataParameter dbParam_Source=new System.Data.SqlClient.SqlParameter(); dbParam_Source.ParameterName="@Source";
dbParam_Source.Value = Source;
dbParam_Source.DbType=System.Data.DbType.String;
dbCommand.Parameters.Add(dbParam_Source);
System.Data.IDataParameter dbParam_Pic = new System.Data.SqlClient.SqlParameter(); dbParam_Pic.ParameterName = "@Pic";
dbParam_Pic.Value = Pic;
dbParam_Pic.DbType = System.Data.DbType.Boolean;
dbCommand.Parameters.Add(dbParam_Pic); System.Data.IDataParameter dbParam_PicUrl = new System.Data.SqlClient.SqlParameter(); dbParam_PicUrl.ParameterName = "@PicUrl";
dbParam_PicUrl.Value = PicUrl;
dbParam_PicUrl.DbType = System.Data.DbType.String;
dbCommand.Parameters.Add(dbParam_PicUrl); System.Data.IDataParameter dbParam_Species = new System.Data.SqlClient.SqlParameter(); dbParam_Species.ParameterName = "@Species";
dbParam_Species.Value = Species;
dbParam_Species.DbType = System.Data.DbType.String;
dbCommand.Parameters.Add(dbParam_Species); System.Data.IDataParameter dbParam_UpFile = new System.Data.SqlClient.SqlParameter(); dbParam_UpFile.ParameterName = "@UpFile";
dbParam_UpFile.Value = UpFile;
dbParam_UpFile.DbType = System.Data.DbType.Boolean;
dbCommand.Parameters.Add(dbParam_UpFile); System.Data.IDataParameter dbParam_FileUrl = new System.Data.SqlClient.SqlParameter(); dbParam_FileUrl.ParameterName = "@FileUrl";
dbParam_FileUrl.Value = FileUrl;
dbParam_FileUrl.DbType = System.Data.DbType.String;
dbCommand.Parameters.Add(dbParam_FileUrl); int rowsAffected = 0; dbConnection.Open();
try
{
rowsAffected = dbCommand.ExecuteNonQuery();
}
finally
{
dbConnection.Close();
}
return rowsAffected;
}
请大家看看我的代码 public static int InsertNews(string Titles, string Author, string Source, bool Pic, string PicUrl, string Species, bool UpFile, string FileUrl, string Contents)
{
string connectionString = ConfigurationManager.ConnectionStrings["dataWeb"].ConnectionString;
System.Data.IDbConnection dbConnection = new System.Data.SqlClient.SqlConnection(connectionString);
string commandString = "INSERT INTO [News] ([Titles],[Contents],[Author],[Source],[Pic],[PicUrl],[Species],[UpFile],[FileUrl]) Values (@Titles,@Contents,isnull(@Author,''),isnull(@Source,''),@Pic,isnull(@PicUrl,''),@Species,@UpFile,isnull(@FileUrl,''))";
System.Data.IDbCommand dbCommand = new System.Data.SqlClient.SqlCommand(); dbCommand.CommandText = commandString;
dbCommand.Connection = dbConnection; System.Data.IDataParameter dbParam_Titles = new System.Data.SqlClient.SqlParameter(); dbParam_Titles.ParameterName = "@Titles";
dbParam_Titles.Value = Titles;
dbParam_Titles.DbType = System.Data.DbType.String;
dbCommand.Parameters.Add(dbParam_Titles); System.Data.IDataParameter dbParam_Contents = new System.Data.SqlClient.SqlParameter(); dbParam_Contents.ParameterName = "@Contents";
dbParam_Contents.Value = Contents;
dbParam_Contents.DbType = System.Data.DbType.String;
dbCommand.Parameters.Add(dbParam_Contents); System.Data.IDataParameter dbParam_Author = new System.Data.SqlClient.SqlParameter(); dbParam_Author.ParameterName = "@Author";
dbParam_Author.Value = Author;
dbParam_Author.DbType = System.Data.DbType.String;
dbCommand.Parameters.Add(dbParam_Author);
System.Data.IDataParameter dbParam_Source=new System.Data.SqlClient.SqlParameter(); dbParam_Source.ParameterName="@Source";
dbParam_Source.Value = Source;
dbParam_Source.DbType=System.Data.DbType.String;
dbCommand.Parameters.Add(dbParam_Source);
System.Data.IDataParameter dbParam_Pic = new System.Data.SqlClient.SqlParameter(); dbParam_Pic.ParameterName = "@Pic";
dbParam_Pic.Value = Pic;
dbParam_Pic.DbType = System.Data.DbType.Boolean;
dbCommand.Parameters.Add(dbParam_Pic); System.Data.IDataParameter dbParam_PicUrl = new System.Data.SqlClient.SqlParameter(); dbParam_PicUrl.ParameterName = "@PicUrl";
dbParam_PicUrl.Value = PicUrl;
dbParam_PicUrl.DbType = System.Data.DbType.String;
dbCommand.Parameters.Add(dbParam_PicUrl); System.Data.IDataParameter dbParam_Species = new System.Data.SqlClient.SqlParameter(); dbParam_Species.ParameterName = "@Species";
dbParam_Species.Value = Species;
dbParam_Species.DbType = System.Data.DbType.String;
dbCommand.Parameters.Add(dbParam_Species); System.Data.IDataParameter dbParam_UpFile = new System.Data.SqlClient.SqlParameter(); dbParam_UpFile.ParameterName = "@UpFile";
dbParam_UpFile.Value = UpFile;
dbParam_UpFile.DbType = System.Data.DbType.Boolean;
dbCommand.Parameters.Add(dbParam_UpFile); System.Data.IDataParameter dbParam_FileUrl = new System.Data.SqlClient.SqlParameter(); dbParam_FileUrl.ParameterName = "@FileUrl";
dbParam_FileUrl.Value = FileUrl;
dbParam_FileUrl.DbType = System.Data.DbType.String;
dbCommand.Parameters.Add(dbParam_FileUrl); int rowsAffected = 0; dbConnection.Open();
try
{
rowsAffected = dbCommand.ExecuteNonQuery();
}
finally
{
dbConnection.Close();
}
return rowsAffected;
}
解决方案 »
- 求asp.net treeview 上移下移代码
- 关于IIS的会话时间问题
- VS 2005中后台代码中InitializeComponent()和System.EventHandler这些东西跑哪儿了,知道者重赏
- 如何调用用户控件属性
- 一个图片存取的问题???急
- 在线等 TreeView如何判断节点是子节点还是父节点 急急急急急急急
- 前辈们求帮忙 aspx页面调用dll的问题
- 100分求obout slidemenu3 没有限制版
- 在使用gridview模板中有一个按钮,我单击按钮弹出一个层!
- 谁有学习ASP.NET的资料!
- 请教一个非常紧急的问题,谢谢各位帮忙
- sql语句和和将一个字段的内容替换为另一写内容?
对应的字段有没有设置为非空,
把它改为允许空试试