2016-07-28 28 views
0

好吧,我已经扎根于以前提出的问题,改变了我的代码三四次,仍然无法得到我正在向我的表格中插入数据的表单。寻找有用的建议。对于一个或多个所需参数没有给出值。 vb

表单代码:

<div> 
    <table align="center" width="200px" cellpadding="5px"> 
     <tr><td width="50px">Season:</td><td width="150px"> 
      <asp:DropDownList name="Season" ID="ddlSeason" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource1" DataTextField="Season" DataValueField="Season"> 
      </asp:DropDownList> 
      <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:SeasonConnectionString %>" ProviderName="<%$ ConnectionStrings:SeasonConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [T_Season] ORDER BY [Season]"></asp:SqlDataSource> 
      </td></tr> 
     <tr><td>Game: </td><td> 
      <asp:DropDownList name="Game" ID="ddlGameNumber" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource2" DataTextField="Game" DataValueField="Game"> 
      </asp:DropDownList> 
      <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:GameNumberConnectionString %>" ProviderName="<%$ ConnectionStrings:GameNumberConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [T_GameNumbers] ORDER BY [Game]"></asp:SqlDataSource> 
      </td></tr> 
     <tr><td>Team: </td><td> 
      <asp:DropDownList name="Team" ID="ddlTeam" runat="server" Height="16px" Width="122px" AutoPostBack="True" DataSourceID="SqlDataSource3" DataTextField="Team" DataValueField="Team"> 
      </asp:DropDownList> 
      <asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:TeamConnectionString %>" ProviderName="<%$ ConnectionStrings:TeamConnectionString.ProviderName %>" SelectCommand="SELECT DISTINCT * FROM [T_Teams] ORDER BY [Team]"></asp:SqlDataSource> 
      </td></tr> 
     <tr><td>Player: </td><td> 
      <asp:DropDownList name="Player" ID="ddlPlayer" runat="server" Height="16px" Width="121px" AutoPostBack="True" DataSourceID="SqlDataSource4" DataTextField="Player" DataValueField="Player"> 
      </asp:DropDownList> 
      <asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString="<%$ ConnectionStrings:PlayerConnectionString %>" ProviderName="<%$ ConnectionStrings:PlayerConnectionString.ProviderName %>" SelectCommand="SELECT DISTINCT [Team], [Player] FROM [T_Passing] WHERE (([Season] = ?) AND ([Team] = ?)) ORDER BY [Player]"> 
       <SelectParameters> 
        <asp:ControlParameter ControlID="ddlSeason" Name="Season" PropertyName="SelectedValue" Type="String" /> 
        <asp:ControlParameter ControlID="ddlTeam" Name="Team" PropertyName="SelectedValue" Type="String" /> 
       </SelectParameters> 
      </asp:SqlDataSource> 
      </td></tr> 
     <tr><td>Atts: </td><td> 
      <asp:DropDownList name="Atts" ID="ddlAtts" runat="server" DataSourceID="SqlDataSource5" DataTextField="Game" DataValueField="Game"> 
      </asp:DropDownList> 
      <asp:SqlDataSource ID="SqlDataSource5" runat="server" ConnectionString="<%$ ConnectionStrings:AttsConnectionString %>" ProviderName="<%$ ConnectionStrings:AttsConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [T_Atts] ORDER BY [Game]"></asp:SqlDataSource> 
      </td></tr> 
     <tr><td>Comps: </td><td> 
      <asp:DropDownList name="Comps" ID="ddlComps" runat="server" DataSourceID="SqlDataSource6" DataTextField="Comps" DataValueField="Comps"> 
      </asp:DropDownList> 
      <asp:SqlDataSource ID="SqlDataSource6" runat="server" ConnectionString="<%$ ConnectionStrings:CompletionsConnectionString %>" ProviderName="<%$ ConnectionStrings:CompletionsConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [T_Comps] ORDER BY [Comps]"></asp:SqlDataSource> 
      </td></tr> 
     <tr><td>Yards: </td><td> 
      <asp:TextBox name="Yards" ID="txtYards" runat="server" Width="68px" Text="0"></asp:TextBox> 
      </td></tr> 
     <tr><td>TDs: </td><td> 
      <asp:DropDownList name="TDs" ID="ddlTDs" runat="server" DataSourceID="SqlDataSource7" DataTextField="TDs" DataValueField="TDs"> 
      </asp:DropDownList> 
      <asp:SqlDataSource ID="SqlDataSource7" runat="server" ConnectionString="<%$ ConnectionStrings:TDConnectionString %>" ProviderName="<%$ ConnectionStrings:TDConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [T_TDs] ORDER BY [TDs]"></asp:SqlDataSource> 
      </td></tr> 
     <tr><td>Ints: </td><td> 
      <asp:DropDownList name="Ints" ID="ddlInts" runat="server" DataSourceID="SqlDataSource8" DataTextField="Ints" DataValueField="Ints"> 
      </asp:DropDownList> 
      <asp:SqlDataSource ID="SqlDataSource8" runat="server" ConnectionString="<%$ ConnectionStrings:IntsConnectionString %>" ProviderName="<%$ ConnectionStrings:IntsConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [T_Ints] ORDER BY [Ints]"></asp:SqlDataSource> 
      </td></tr> 
     <tr><td>Long: </td><td> 
      <asp:TextBox name="Longest" ID="txtLongest" runat="server" Width="67px" Text="0"></asp:TextBox> 
      </td></tr> 
     <tr><td colspan="2" align="center"> 
      <asp:Button ID="btnSubmit" runat="server" Text="Submit" />&nbsp;&nbsp; 
      <asp:Button ID="btnCancel" runat="server" Text="Cancel" /> 
      </td></tr> 
    </table> 
</div> 

代码背后:

Protected Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnSubmit.Click 
    Dim season As String = Request.Form("Season") 
    Dim game As String = Request.Form("Game") 
    Dim team As String = Request.Form("Team") 
    Dim player As String = Request.Form("Player") 
    Dim atts As String = Request.Form("Atts") 
    Dim comps As String = Request.Form("Comps") 
    Dim yards As String = Request.Form("Yards") 
    Dim tds As String = Request.Form("TDs") 
    Dim ints As String = Request.Form("Ints") 
    Dim longest As String = Request.Form("Longest") 

    Dim objConnection As OleDbConnection = Nothing 
    Dim objcmd As OleDbCommand = Nothing 

    Dim sqlString As String 
    Dim dbconn As OleDbConnection = Nothing 

    dbconn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Server.MapPath("~/App_Data/TCFLStatistics.accdb")) 
    dbconn.Open() 

    sqlString = "Insert into T_Passing (Season, Game, Team, Player, Atts, Comps, Yards, TDs, INTs, Longest) Values (?,?,?,?,?,?,?,?,?,?)" 
    objcmd = New OleDbCommand(sqlString, dbconn) 
    objcmd.Parameters.AddWithValue("@Season", ddlSeason.SelectedValue.ToString) 
    objcmd.Parameters.AddWithValue("@Game", ddlGameNumber.SelectedValue.ToString) 
    objcmd.Parameters.AddWithValue("@Team", ddlTeam.SelectedValue.ToString) 
    objcmd.Parameters.AddWithValue("@Player", ddlPlayer.SelectedValue.ToString) 
    objcmd.Parameters.AddWithValue("@Atts", ddlAtts.SelectedValue.ToString) 
    objcmd.Parameters.AddWithValue("@Comps", ddlComps.SelectedValue.ToString) 
    objcmd.Parameters.AddWithValue("@Yards", txtYards.Text) 
    objcmd.Parameters.AddWithValue("@TDs", ddlTDs.SelectedValue.ToString) 
    objcmd.Parameters.AddWithValue("@INTs", ddlInts.SelectedValue.ToString) 
    objcmd.Parameters.AddWithValue("@Longest", txtLongest.Text) 
    objcmd.ExecuteNonQuery() 

    dbconn.Close() 
    MsgBox("Record submitted successfully!") 

End Sub 

回答

0

我会尝试在查询文本使用参数名:

sqlString = "Insert into T_Passing (Season, Game, Team, Player, Atts, Comps, Yards, TDs, INTs, Longest) Values (@Season,@Game,@Team,@Player,@Atts,@Comps,@Yards,@TDs,@INTs,@Longest)" 
+0

刚刚尝试过你的建议和没有骰子... – championcyclones

+0

好吧,我提供的唯一的其他事情是检查你的参数(当前所有字符串)的数据类型与数据库字段的数据类型。 –

1

我找到了答案,我自己题!

当我继续滚动浏览大量类似的问题时,有人建议使用Response.Write命令来显示sql字符串以确保它看起来正确。我插入了一个Response.Write命令来显示连接字符串和sql字符串以验证准确性。我仍然有同样的错误。然后我有了评论提交按钮代码的好主意。我再次运行代码并得到相同的错误消息。这告诉我这个错误不在我的提交代码中。

我转移到代码的表单部分,并开始注释掉文本框,并从最后开始逐个下拉列表。我发现,我已经改变了我的表中的列标题后,我曾在这部分代码所做的SqlDataSource的链接:

<asp:DropDownList name="Atts" ID="ddlAtts" runat="server" DataSourceID="SqlDataSource5" DataTextField="Game" DataValueField="Game"> 
     </asp:DropDownList> 
     <asp:SqlDataSource ID="SqlDataSource5" runat="server" ConnectionString="<%$ ConnectionStrings:AttsConnectionString %>" ProviderName="<%$ ConnectionStrings:AttsConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [T_Atts] ORDER BY [Game]"></asp:SqlDataSource> 

有一次,我在代码中的所有适用部分改变游戏以ATT以它的工作就像一个魅力!

非常感谢所有花时间阅读我的问题,提交答案或回答其他类似问题之一,这些问题将我引向我的解决方案!

相关问题