C# 是否有获取SQL Server默认值的开关';s表';s字段作为FormView/DetailsView文本框的默认值?
我使用的是SQL Server 2008 R2和VS2010 C#ASP.NET 4 FormView和DetailsView在插入模式下为空文本框 我希望这些文本框反映SQL Server上各个列的默认值 有没有一个简单的方法可以做到这一点C# 是否有获取SQL Server默认值的开关';s表';s字段作为FormView/DetailsView文本框的默认值?,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我使用的是SQL Server 2008 R2和VS2010 C#ASP.NET 4 FormView和DetailsView在插入模式下为空文本框 我希望这些文本框反映SQL Server上各个列的默认值 有没有一个简单的方法可以做到这一点 编辑:(示例) 问题是: 下表: CREATE TABLE [dbo].[SampleTable]( [PKColumn1] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED, [In
编辑:(示例) 问题是: 下表:
CREATE TABLE [dbo].[SampleTable](
[PKColumn1] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
[IntColumn2] [int] NOT NULL DEFAULT (12),
[nvarcharColumn3] [nvarchar](50) NOT NULL DEFAULT (N'bla bla'),
[IntColumn4NoDefault] [int] NULL)
aspx标记:
<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px"
AutoGenerateRows="False" DataKeyNames="PKColumn1" DataSourceID="SqlDataSource1"
DefaultMode="Insert">
<Fields>
<asp:BoundField DataField="PKColumn1" HeaderText="PKColumn1" InsertVisible="False" ReadOnly="True" SortExpression="PKColumn1" />
<asp:BoundField DataField="IntColumn2" HeaderText="IntColumn2" SortExpression="IntColumn2" />
<asp:BoundField DataField="nvarcharColumn3" HeaderText="nvarcharColumn3" SortExpression="nvarcharColumn3" />
<asp:BoundField DataField="IntColumn4NoDefault"
HeaderText="IntColumn4NoDefault" SortExpression="IntColumn4NoDefault" />
<asp:CommandField ShowInsertButton="True" />
</Fields>
</asp:DetailsView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:dbConnectionString %>"
InsertCommand="INSERT INTO [SampleTable] ([IntColumn2], [nvarcharColumn3], [IntColumn4NoDefault]) VALUES (@IntColumn2, @nvarcharColumn3, @IntColumn4NoDefault)"
SelectCommand="SELECT * FROM [SampleTable]">
<InsertParameters>
<asp:Parameter Name="IntColumn2" Type="Int32" />
<asp:Parameter Name="nvarcharColumn3" Type="String" />
<asp:Parameter Name="IntColumn4NoDefault" Type="Int32" />
</InsertParameters>
</asp:SqlDataSource>
没有C代码隐藏。是的,有
select c.name, definition
from sys.default_constraints dc
join sys.columns c
on c.object_id = dc.parent_object_id
and c.column_id = dc.parent_column_id
where parent_object_id = object_id('mytable')
返回结果集后,应具有列名和默认值。如果具有默认值的每一列对应一个文本框(1:1),只需向表单/webform添加一个转发器,并将“定义”绑定到文本属性。由于在输出中添加了括号,您可能需要对数据进行一些处理,但可能需要使用正则表达式或简单的替换。它驻留在信息模式表中。我忘了是哪一个了Chris gessler-因此,对于正常情况没有简单的解决方案,在这种情况下,某些列没有默认值。@Differentit111222-简单的解决方案是使用右连接