Hej Jag vet inte vad felet är, men varför använder du dig inte av "AccessDataSource". Den är ju byggd för accessdatabas. HejInsert new record i Access 2003 med SqlDataSource
Jag har fått ett problem när jag försöker lägga till en rad i min access databas 2003. Jag använder Visual web developer 2010 express.
Får detta felmeddelande:
Serverfel i tillämpningsprogrammet /Medlem2.
--------------------------------------------------------------------------------
ERROR [23000] [Microsoft][Drivrutin för ODBC Microsoft Access] Du försöker tilldela Null-värdet till en variabel som inte är av datatypen Variant.
Beskrivning: Ett undantag som inte kunde hanteras uppstod när den aktuella webbegäran kördes. Mer information om felet och var i koden det uppstod finns i stackspårningen.
Undantagsinformation: System.Data.Odbc.OdbcException: ERROR [23000] [Microsoft][Drivrutin för ODBC Microsoft Access] Du försöker tilldela Null-värdet till en variabel som inte är av datatypen Variant.
Källfel:
Ett undantag som inte hanteras genererades vid körningen av den aktuella webbegäran. Information om undantagets ursprung och plats kan identifieras med undantagsstackspårningen nedan.
Stackspårning:
[OdbcException (0x80131937): ERROR [23000] [Microsoft][Drivrutin för ODBC Microsoft Access] Du försöker tilldela Null-värdet till en variabel som inte är av datatypen Variant.]
System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode) +1215354
System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader, Object[] methodArguments, SQL_API odbcApiMethod) +1171
System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader) +67
System.Data.Odbc.OdbcCommand.ExecuteNonQuery() +92
System.Web.UI.WebControls.SqlDataSourceView.ExecuteDbCommand(DbCommand command, DataSourceOperation operation) +394
System.Web.UI.WebControls.SqlDataSourceView.ExecuteInsert(IDictionary values) +407
System.Web.UI.DataSourceView.Insert(IDictionary values, DataSourceViewOperationCallback callback) +89
System.Web.UI.WebControls.FormView.HandleInsert(String commandArg, Boolean causesValidation) +377
System.Web.UI.WebControls.FormView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +575
System.Web.UI.WebControls.FormView.OnBubbleEvent(Object source, EventArgs e) +95
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.FormViewRow.OnBubbleEvent(Object source, EventArgs e) +112
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +125
System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +169
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +9
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +176
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563
--------------------------------------------------------------------------------
Versionsinformation: Microsoft .NET Framework-version:4.0.30319; ASP.NET-version:4.0.30319.1
Min kod:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:1 %>"
DeleteCommand="DELETE FROM [Loggin] WHERE [AnvandarID] = ? AND (([AnvandarNamn] = ?) OR ([AnvandarNamn] IS NULL AND ? IS NULL)) AND (([Losenord] = ?) OR ([Losenord] IS NULL AND ? IS NULL))"
InsertCommand="INSERT INTO [Loggin] ([AnvandarID], [AnvandarNamn], [Losenord]) VALUES (?, ?, ?)"
OldValuesParameterFormatString="original_{0}"
ProviderName="<%$ ConnectionStrings:1.ProviderName %>"
SelectCommand="SELECT [AnvandarID], [AnvandarNamn], [Losenord] FROM [Loggin]"
UpdateCommand="UPDATE [Loggin] SET [AnvandarNamn] = ?, [Losenord] = ? WHERE [AnvandarID] = ? AND (([AnvandarNamn] = ?) OR ([AnvandarNamn] IS NULL AND ? IS NULL)) AND (([Losenord] = ?) OR ([Losenord] IS NULL AND ? IS NULL))">
<DeleteParameters>
<asp:Parameter Name="original_AnvandarID" Type="Int32" />
<asp:Parameter Name="original_AnvandarNamn" Type="String" />
<asp:Parameter Name="original_AnvandarNamn" Type="String" />
<asp:Parameter Name="original_Losenord" Type="String" />
<asp:Parameter Name="original_Losenord" Type="String" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="AnvandarID" Type="Int32" />
<asp:Parameter Name="AnvandarNamn" Type="String" />
<asp:Parameter Name="Losenord" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="AnvandarNamn" Type="String" />
<asp:Parameter Name="Losenord" Type="String" />
<asp:Parameter Name="original_AnvandarID" Type="Int32" />
<asp:Parameter Name="original_AnvandarNamn" Type="String" />
<asp:Parameter Name="original_AnvandarNamn" Type="String" />
<asp:Parameter Name="original_Losenord" Type="String" />
<asp:Parameter Name="original_Losenord" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
<asp:FormView ID="FormView1" runat="server" DataKeyNames="AnvandarID"
DataSourceID="SqlDataSource1" DefaultMode="Insert">
<EditItemTemplate>
AnvandarID:
<asp:Label ID="AnvandarIDLabel1" runat="server"
Text='<%# Eval("AnvandarID") %>' />
<br />
AnvandarNamn:
<asp:TextBox ID="AnvandarNamnTextBox" runat="server"
Text='<%# Bind("AnvandarNamn") %>' />
<br />
Losenord:
<asp:TextBox ID="LosenordTextBox" runat="server"
Text='<%# Bind("Losenord") %>' />
<br />
<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True"
CommandName="Update" Text="Update" />
<asp:LinkButton ID="UpdateCancelButton" runat="server"
CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</EditItemTemplate>
<InsertItemTemplate>
AnvandarNamn:
<asp:TextBox ID="AnvandarNamnTextBox" runat="server"
Text='<%# Bind("AnvandarNamn") %>' />
<br />
Losenord:
<asp:TextBox ID="LosenordTextBox" runat="server"
Text='<%# Bind("Losenord") %>' />
<br />
<asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True"
CommandName="Insert" Text="Insert" />
<asp:LinkButton ID="InsertCancelButton" runat="server"
CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</InsertItemTemplate>
<ItemTemplate>
AnvandarID:
<asp:Label ID="AnvandarIDLabel" runat="server"
Text='<%# Eval("AnvandarID") %>' />
<br />
AnvandarNamn:
<asp:Label ID="AnvandarNamnLabel" runat="server"
Text='<%# Bind("AnvandarNamn") %>' />
<br />
Losenord:
<asp:Label ID="LosenordLabel" runat="server" Text='<%# Bind("Losenord") %>' />
<br />
<asp:LinkButton ID="EditButton" runat="server" CausesValidation="False"
CommandName="Edit" Text="Edit" />
<asp:LinkButton ID="DeleteButton" runat="server" CausesValidation="False"
CommandName="Delete" Text="Delete" />
<asp:LinkButton ID="NewButton" runat="server" CausesValidation="False"
CommandName="New" Text="New" />
</ItemTemplate>
</asp:FormView>
</div>
</form>
</body>
</html>Sv: Insert new record i Access 2003 med SqlDataSource
Sv: Insert new record i Access 2003 med SqlDataSource
Löste det själv. Raderade alla värden med AnvändarID :)