Avatar billede mirakulix Nybegynder
28. marts 2006 - 21:21 Der er 2 kommentarer

Insert vil bare ikke med formparameter

Hej =)
Jeg har siddet og rode med at inserte data fra en textbox i MsSQL et stykke tid og det vil bare ikke :(

Jeg får hele tiden fejlen:

"Cannot insert the value NULL into column 'Title', table 'TaskManager.dbo.Programs'; column does not allow nulls. INSERT fails.
The statement has been terminated."

jeg har forsøgt at indsætte en DefaultValue i asp:formparameter og det kommer rigtigt nok ind i DB'en, så jeg går ud fra at fejlen ligger i at jeg ikke får inputtet rigtigt fra textbox'en til asp:formparameter'en....?

Her er hvad jeg gør, håber der er en der kan spotte problemet:

.aspx filen
############################################

<%@ Page Language="C#" MasterPageFile="~/Default.master" AutoEventWireup="true" CodeFile="ManagePrograms.aspx.cs" Inherits="Admin_ManagePrograms" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Content" Runat="Server">
    <div>
        <asp:SqlDataSource
            ID="dataSourcePrograms"
            runat="server"
            ConnectionString="<%$ ConnectionStrings:TaskManagerDBConnection%>"
            SelectCommand = "SELECT Title, Version, ProgramId  FROM Programs"
           
            insertcommand = "INSERT INTO Programs (Title, Version, ProgramId) VALUES (@xTitle,@xVersion,newid())">
                <insertparameters>
                    <asp:formparameter name="xTitle"        formfield="txtTitle" />
                    <asp:formparameter name="xVersion"      formfield="txtVersion" />
                </insertparameters>
        </asp:SqlDataSource>
   
        <table>
            <tr>
                <td style="width: 110px"><asp:Label ID="lblTitle" runat="server">Program Title:</asp:Label></td>
                <td><asp:TextBox id="txtTitle" runat="server"/></td>
                <td></td>
                <td><asp:RequiredFieldValidator id="ValidateTxtTitle" runat="server" ControlToValidate="txtTitle" Display="Dynamic" ErrorMessage="Indtast en program title."/></td>
            </tr>
            <tr>
                <td style="width: 110px"><asp:Label id="lblVersion" runat="server">Version:</asp:Label></td>
                <td><asp:TextBox id="txtVersion" runat="server"/></td>
                <td></td>
                <td></td>
            </tr>
            <tr>
                <td><asp:Label id="lblValidation" runat="server"/></td>
            </tr>
            <tr>
                <td colspan=2><asp:Button id="btnAddProgram" runat="server" Text="Opret Program" OnClick="btnAddProgram_Click"/></td>
            </tr>
           
        </table>
    <br />
</div>
</asp:Content>

kodefilen:
###################################################

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Admin_ManagePrograms : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnAddProgram_Click(object sender, EventArgs e)
    {
        dataSourcePrograms.Insert();
    }
}
Avatar billede mirakulix Nybegynder
29. marts 2006 - 09:59 #1
Jeg har forsøgt at debugge men det er vist ikke rigtigt til i HTML-koden, så jeg ved ikke om det er derfor xTitle "xTitle    The name 'xTitle' does not exist in the current context" ??
Avatar billede rasserw Nybegynder
11. april 2006 - 21:36 #2
der er <form tag> på din master??

eller

prøv lige at navngiv dine parametre til @Title og @Version så der er enslydende med feltnavne i DB, dog med et @ på. :o)

Venligst

Arne Johansen
www.frameworker.net
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester