最近我一直在观看关于数据绑定的Plural Sight ASP.NET视频,我遇到了<asp:SqlDataSource />
等声明性数据源控件。
我无法理解为什么我无法在sql server 2008数据库中的电影表中插入默认电影标题和发布日期。到目前为止我没有遇到任何麻烦,并且能够通过gridView通过SelectCommand访问该表,但是当我单击插入影片按钮时,新的手动制作的影片参数不会添加到表中。
这是我的代码以便更好看:
InsertCommand="INSERT INTO movies (title, release_date) VALUES (@title, @release_date)"
SelectCommand="SELECT TOP 30 movie_id, title, release_date FROM movies ORDER BY movie_id DESC"
runat="server" ID="_moviesDataSource" DataSourceMode="DataReader">
<InsertParameters>
<asp:Parameter Name="title" />
<asp:Parameter Name="release_date"/>
</InsertParameters>
</asp:SqlDataSource>
<asp:Button ID="Button1" runat="server" Text="Insert new movie"
onclick="Button1_Click" /><br /><br />
<asp:GridView ID="_moviesGridInsert" runat="server" DataSourceID="_moviesDataSource">
</asp:GridView>
正如您在上面注意到的那样,我在参数asp标签中没有Type =“...”,但在此之前,我的类型等于title的字符串和release_date的dateTime。问题可能是我在数据库中设置的值与我上面声明的值不同吗?
C#后端:
protected void Button1_Click(object sender, EventArgs e)
{
Page.MaintainScrollPositionOnPostBack = true;
// TODO - Insert movie (manually inserted with just user input of button click)
_moviesDataSource.InsertParameters["title"].DefaultValue = "My movie";
_moviesDataSource.InsertParameters["release_date"].DefaultValue = "01/01/2008";
_moviesDataSource.Insert();
}
我还不允许发布图片,所以添加网格是不可能的,即使你可以查看表本身也会有所帮助......但是无论如何,一旦点击按钮,表格就会保留同样,当我查看数据库时,不会添加新值。
答案 0 :(得分:0)
SqlDataSource 标记内或 Button1_Click()方法中的任何内容都没有任何问题。
问题:
@Steve Wellens,谢谢你的努力!希望有人可以从这个小小的提示中学习!