gpt4 book ai didi

c# - 是否有一个开关可以将 SQL Server 表的字段的默认值作为 FormView/DetailsView 的 TextBoxes 的默认值?

转载 作者:太空宇宙 更新时间:2023-11-03 14:01:49 24 4
gpt4 key购买 nike

我正在使用 SQL Server 2008 R2 和 VS2010 C# ASP.NET 4

FormView 和 DetailsView 在插入模式下出现空文本框。

我希望这些文本框反射(reflect) SQL Server 上各列默认值的默认值。

有没有简单的方法可以做到这一点?


已编辑:(示例)

问题:

enter image description here

表格:

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) 文本框,只需将 Repeater 添加到您的表单/网络表单并将“定义”绑定(bind)到 Text 属性。由于在输出中添加了括号,您可能需要对数据进行一些修改,但可能使用正则表达式或简单的替换就可以解决问题。

关于c# - 是否有一个开关可以将 SQL Server 表的字段的默认值作为 FormView/DetailsView 的 TextBoxes 的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10563522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com