C# ';对象不包含';插入参数';
我只是在创建网格视图动态插入值,并且不断得到错误 我不知道上面说什么 Welcome.aspx:C# ';对象不包含';插入参数';,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我只是在创建网格视图动态插入值,并且不断得到错误 我不知道上面说什么 Welcome.aspx: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Welcome.aspx.cs" Inherits="DemoApplication.Welcome" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Welcome.aspx.cs" Inherits="DemoApplication.Welcome" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>Database</h1>
<p>
</p>
<p>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" CellPadding="4" DataKeyNames="Id" DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None" Height="156px" OnPageIndexChanging="GridView1_PageIndexChanging" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" ShowFooter="True" Width="180px" OnDataBinding="GridView1_DataBinding" OnRowCommand="GridView1_RowCommand" OnSelectedIndexChanging="GridView1_SelectedIndexChanging">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:TemplateField HeaderText="Id" InsertVisible="False" SortExpression="Id">
<EditItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("Id") %>'></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("Id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name" SortExpression="Name">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Name") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("Name") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Password" SortExpression="Password">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Password") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtPassword" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Bind("Password") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mail" SortExpression="Mail">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Mail") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtMail" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Bind("Mail") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Action">
<EditItemTemplate>
<asp:Button ID="txtUpdate" runat="server" Text="Update" />
<asp:Button ID="txtCancel" runat="server" Text="Cancel" />
</EditItemTemplate>
<FooterTemplate>
<asp:Button ID="insert" runat="server" OnClick="insert_Click" Text="Insert" />
</FooterTemplate>
<ItemTemplate>
<asp:Button ID="txtEdit" runat="server" Text="Edit" />
<asp:Button ID="txtDelete" runat="server" Text="Delete" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT * FROM [Final]" InsertCommand="INSERT INTO [Final] ([Name], [Password], [Mail]) VALUES (@Name, @Password, @Mail)">
<InsertParameters>
<asp:Parameter Name="Name" Type="String" />
<asp:Parameter Name="Password" Type="String" />
<asp:Parameter Name="Mail" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
</p>
<p> </p>
</div>
</form>
</body>
</html>
我从下面的行中得到了错误
SqlDataSource1.InsertParameters[“Name”].DefaultValue=((文本框)GridView1.FooterRow.FindControl(“txtName”)).Text;
SqlDataSource1.InsertParameters[“Name”].DefaultValue=((文本框)GridView1.FooterRow.FindControl(“txtPassword”)).Text;
SqlDataSource1.InsertParameters[“Name”].DefaultValue=((文本框)GridView1.FooterRow.FindControl(“txtMail”)).Text
错误很明显,
对象
类型没有插入参数
方法。使用正确的类型(asp:SqlDataSource)并确保字段已初始化。但您使用的是Webforms,这意味着这些字段已经生成。这项技术非常古老,您会发现许多文档、教程和课程,展示了如何在ASP.NET WebForms中处理数据。例如,在那篇文章的正下方是
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace DemoApplication
{
public partial class Welcome : System.Web.UI.Page
{
private object SqlDataSource1;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
}
protected void Button2_Click(object sender, EventArgs e)
{
}
protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
}
protected void Button3_Click(object sender, EventArgs e)
{
}
protected void Button4_Click(object sender, EventArgs e)
{
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
}
protected void GridView1_DataBinding(object sender, EventArgs e)
{
}
protected void insert_Click(object sender, EventArgs e)
{
SqlDataSource1.InsertParameters["Name"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("txtName")).Text;
SqlDataSource1.InsertParameters["Name"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("txtPassword")).Text;
SqlDataSource1.InsertParameters["Name"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("txtMail")).Text;
}
}
}