我正在使用SQL Server 2008 R2和VS2010 C#ASP.NET 4是否有一个开关将SQL Server表的字段的默认值作为FormView/DetailsView的TextBox的默认值?
FormView和DetailsView在插入模式下为空文本框。
我希望这些TextBoxes能够反映SQL Server上相应列的默认值的默认值。
有没有简单的方法来做到这一点?
编辑:(例子)
问题:
表:
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#代码背后。
它驻留在information_schema表中。我忘了哪一个 –