winform自动写入SQL数据库默认值方法

1.SQL2008中获取表的默认值.

--获取数据库中的默认值,返回一行数据
ALTER Procedure [dbo].[S_GetDefaultValue](
@table nvarchar(1000)) AS
select b.name,c.text,replace(replace(c.text,'(',''),')','') as value
from sysobjects a
inner join syscolumns b on b.id=a.id
inner join syscomments c on c.id=b.cdefault
where a.name=@table

--exec S_GetDefaultValue 'Sys_Modal'

2.保存操作时自动写入默认值,支持自定义默认值

            DataSet das = (Grid1.DataSource as DataTable).DataSet;
        DataRow drow = das.Tables[0].NewRow();
        if (!string.IsNullOrEmpty(TableName)))
            {
                DataHelper myHelper = new DataHelper();
                DataSet ds1 = myHelper.GetDs("exec S_GetDefaultValue " + TableName);
                foreach (DataRow dr in ds1.Tables[0].Rows)
                {
                    ////保留思路,变更为在设计界面调用字段
                    if (dr["value"].ToString() == "'getuser'")
                    {
                        //设置默认建档人员
                        drow[dr["name"].ToString()] = SysParam.SyU_EmpName;
                        continue;
                    }
                    if (dr["value"].ToString() == "getdate")
                    {
                        //设置建档默认时间
                        drow[dr["name"].ToString()] = SysInvoke.GetDate().ToString();
                        continue;
                    }
                    if (drow.Table.Columns[dr["name"].ToString()].DataType == typeof(Boolean))   //布尔型赋值
                    {
                        drow[dr["name"].ToString()] = (dr["value"].ToString() != "0");
                        continue;
                    }
                    drow[dr["name"].ToString()] = dr["value"];
                }
            }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值