关于使用sql存储过程中遇到的问题 程序出错,提示@outurl需要一个参数也就是说,不能输入一个空值那么我要怎么设置才可以让它接受一个空值? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 试试 =DataType.DbNull 是修改Vb.net中的代码,还是修改Sql存储过程的代码?@outurl等列都是需要保存的,只是要设置为允许用户输入空值。 试试在存储过程中定义 @outurl=null 用楼上的就可以啦。。试试在存储过程中定义 @outurl=null 应该是设计表时@outurl对应的列允许null就可以了吧,调用存储过程时只要声明了参数@outurl就可以了,传null也是可以的 试试在存储过程中定义 @outurl=null我们都是这样用的 具体是在哪个地方呢……CREATE PROCEDURE [Art_Topic_insert] (@ClassId_1 [int], @BeOrder_2 [int], @Title_3 [varchar](255), @Content_4 [ntext], @isShowRe_5 [bit], @TitlePicUrl_6 [varchar](255), @SubjectId_7 [int], @OutUrl_8 [varchar](255), @Summary_9 [ntext], @isA_10 [bit], @isHighLight_11 [bit], @isClassTop_12 [bit], @isIndexTop_13 [bit], @isAllowRe_14 [bit], @KeywordId_15 [varchar](255), @Author_16 [varchar](50), @ContactTheWay_17 [varchar](255), @Source_18 [varchar](100), @SourceUrl_19 [varchar](255), @UserName_20 [varchar](20), @UserId_21 [int], @UserIp_22 [varchar](20), @isBlog_23 [bit], @BlogId_24 [bit], @UseTable_25 [varchar](20), @isOk_26 [bit], @TemplateId_27 [int])ASINSERT INTO [duoluojie].[dbo].[Art_Topic] ( [ClassId], [BeOrder], [Title], [Content], [isShowRe], [TitlePicUrl], [SubjectId], [OutUrl], [Summary], [isA], [isHighLight], [isClassTop], [isIndexTop], [isAllowRe], [KeywordId], [Author], [ContactTheWay], [Source], [SourceUrl], [UserName], [UserId], [UserIp], [isBlog], [BlogId], [UseTable], [isOk], [TemplateId]) VALUES ( @ClassId_1, @BeOrder_2, @Title_3, @Content_4, @isShowRe_5, @TitlePicUrl_6, @SubjectId_7, @OutUrl_8, @Summary_9, @isA_10, @isHighLight_11, @isClassTop_12, @isIndexTop_13, @isAllowRe_14, @KeywordId_15, @Author_16, @ContactTheWay_17, @Source_18, @SourceUrl_19, @UserName_20, @UserId_21, @UserIp_22, @isBlog_23, @BlogId_24, @UseTable_25, @isOk_26, @TemplateId_27) CREATE PROCEDURE [Art_Topic_insert] (@ClassId_1 [int], @BeOrder_2 [int], @Title_3 [varchar](255), @Content_4 [ntext], @isShowRe_5 [bit], @TitlePicUrl_6 [varchar](255), @SubjectId_7 [int], @OutUrl_8 [varchar](255),------------------在这里啦 在as后面一行就是insert前一行加上if @OutUrl_8 is null set @OutUrl_8=''就可以了 1, 用存储过程默认参数,比如create procedure testproc @pram1 int = 1as ……go2, 前台传一个空值过去,比如YourParam.Value = DBNull.Value; CREATE PROCEDURE [Art_Topic_insert] (@ClassId_1 [int]=null, @BeOrder_2 [int]=null, @Title_3 [varchar]=null(255),在类型后面加上“=默认值”,默认值看你的需要来,如@classid_1 int=0另外输出参数也可以设置默认值的,如@classid_1 int=0 output只要设置了默认值的,在程序中调用存储过程时,这个参数就可以不传值。 mvc表单传值的问题 gridview分页 照抄都不成功? 关于权限的验证 自定义控件如果和aspx处于同一目录下如何调用? 报错 oracle问题 请问怎么样修改?? 把一个网站设为IIS的默认网站后其他虚拟目录访问则报错 vs 2003中 b/s开发 谁做过 excel 批量打印?? 求助,有谁有关于DataGrid控件的实例,任何都行? 问一个数据库登录的问题 小问题!
@outurl等列都是需要保存的,只是要设置为允许用户输入空值。
调用存储过程时只要声明了参数@outurl就可以了,传null也是可以的
我们都是这样用的
(@ClassId_1 [int],
@BeOrder_2 [int],
@Title_3 [varchar](255),
@Content_4 [ntext],
@isShowRe_5 [bit],
@TitlePicUrl_6 [varchar](255),
@SubjectId_7 [int],
@OutUrl_8 [varchar](255),
@Summary_9 [ntext],
@isA_10 [bit],
@isHighLight_11 [bit],
@isClassTop_12 [bit],
@isIndexTop_13 [bit],
@isAllowRe_14 [bit],
@KeywordId_15 [varchar](255),
@Author_16 [varchar](50),
@ContactTheWay_17 [varchar](255),
@Source_18 [varchar](100),
@SourceUrl_19 [varchar](255),
@UserName_20 [varchar](20),
@UserId_21 [int],
@UserIp_22 [varchar](20),
@isBlog_23 [bit],
@BlogId_24 [bit],
@UseTable_25 [varchar](20),
@isOk_26 [bit],
@TemplateId_27 [int])
AS
INSERT INTO [duoluojie].[dbo].[Art_Topic]
( [ClassId],
[BeOrder],
[Title],
[Content],
[isShowRe],
[TitlePicUrl],
[SubjectId],
[OutUrl],
[Summary],
[isA],
[isHighLight],
[isClassTop],
[isIndexTop],
[isAllowRe],
[KeywordId],
[Author],
[ContactTheWay],
[Source],
[SourceUrl],
[UserName],
[UserId],
[UserIp],
[isBlog],
[BlogId],
[UseTable],
[isOk],
[TemplateId])
VALUES
( @ClassId_1,
@BeOrder_2,
@Title_3,
@Content_4,
@isShowRe_5,
@TitlePicUrl_6,
@SubjectId_7,
@OutUrl_8,
@Summary_9,
@isA_10,
@isHighLight_11,
@isClassTop_12,
@isIndexTop_13,
@isAllowRe_14,
@KeywordId_15,
@Author_16,
@ContactTheWay_17,
@Source_18,
@SourceUrl_19,
@UserName_20,
@UserId_21,
@UserIp_22,
@isBlog_23,
@BlogId_24,
@UseTable_25,
@isOk_26,
@TemplateId_27)
(@ClassId_1 [int],
@BeOrder_2 [int],
@Title_3 [varchar](255),
@Content_4 [ntext],
@isShowRe_5 [bit],
@TitlePicUrl_6 [varchar](255),
@SubjectId_7 [int],
@OutUrl_8 [varchar](255),------------------在这里啦
if @OutUrl_8 is null
set @OutUrl_8=''
就可以了
create procedure testproc
@pram1 int = 1
as
……
go2, 前台传一个空值过去,比如
YourParam.Value = DBNull.Value;
(@ClassId_1 [int]=null,
@BeOrder_2 [int]=null,
@Title_3 [varchar]=null(255),
在类型后面加上“=默认值”,默认值看你的需要来,如@classid_1 int=0
另外输出参数也可以设置默认值的,如@classid_1 int=0 output
只要设置了默认值的,在程序中调用存储过程时,这个参数就可以不传值。