016
21.01.2007, 11:55 Uhr
Eroli
|
Hallo Uwe,
weiter unten siehst du mal einen größeren Ausschnitt:
C++: |
System.Data.SqlClient.SqlCommand SqlCommand = new System.Data.SqlClient.SqlCommand(); System.Data.SqlClient.SqlConnection SqlConnection = new System.Data.SqlClient.SqlConnection(); SqlConnection.ConnectionString = (string)System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; SqlCommand.Connection = SqlConnection; SqlCommand.CommandText = "INSERT INTO AuctionsTable([User], [Categorie], [Title], [Description], [Price], [Appointment], [Location], [CreationDate], [Material], [Payment], [Qualifications], [PublicLiability], [NumberOfEmployees], [NumberOfReferences], [EvaluationCriterias], [Miscellaneous], [PictureCount]) VALUES (@User, @Categorie, @Title, @Description, @Price, @Appointment, @Location, @CreationDate, @Material, @Payment, @Qualifications, @PublicLiability, @NumberOfEmployees, @NumberOfReferences, @EvaluationCriterias, @Miscellaneous, @PictureCount)"; SqlCommand.Parameters.AddWithValue("@User", Context.User.Identity.Name); SqlCommand.Parameters.AddWithValue("@Categorie", CategorieDropDownList.SelectedItem.Text); SqlCommand.Parameters.AddWithValue("@Title", AuctionTitleTextBox.Text); SqlCommand.Parameters.AddWithValue("@Description", DescriptionTextBox.Text); SqlCommand.Parameters.AddWithValue("@Price", PriceTextBox.Text); SqlCommand.Parameters.AddWithValue("@Appointment", AppointmentCalendar.SelectedDate); SqlCommand.Parameters.AddWithValue("@Location", LocationTextBox2.Text); SqlCommand.Parameters.AddWithValue("@CreationDate", DateTime.Now); SqlCommand.Parameters.AddWithValue("@Material", MaterialRadioButtonList.SelectedItem.Text); SqlCommand.Parameters.AddWithValue("@Payment", PaymentDropDownList.SelectedItem.Text); SqlCommand.Parameters.AddWithValue("@Qualifications", QualificationsDropDownList.SelectedItem.Text); SqlCommand.Parameters.AddWithValue("@PublicLiability", PublicLiabilityRadioButtonList.SelectedItem.Text); SqlCommand.Parameters.AddWithValue("@NumberOfEmployees", EmployeesDropDownList.SelectedItem.Text); SqlCommand.Parameters.AddWithValue("@NumberOfReferences", ReferencesDropDownList.SelectedItem.Text); SqlCommand.Parameters.AddWithValue("@EvaluationCriterias", EvaluationDropDownList.SelectedItem.Text); SqlCommand.Parameters.AddWithValue("@Miscellaneous", MiscellaneousTextBox.Text); SqlCommand.Parameters.AddWithValue("@PictureCount", 0); SqlConnection.Open(); SqlCommand.ExecuteNonQuery(); SqlConnection.Close(); SqlCommand.CommandText = "SELECT SCOPE_IDENTITY()"; SqlConnection.Open(); object auctionID = SqlCommand.ExecuteReader(); SqlConnection.Close(); SqlConnection.Dispose(); NewAuctionPanel.Enabled = false; PictureUploadPanel.Visible = true; Response.Redirect(string.Format("~/usercenter.aspx?auctionId={0},mode={1}",Convert.ToInt64(auctionID),1));
|
In der letzten Zeile beim unwandeln in einen long kommt folgende Exception
C++: |
System.InvalidCastException wurde nicht von Benutzercode behandelt. Message="Das Objekt des Typs System.Data.SqlClient.SqlDataReader kann nicht in Typ System.IConvertible umgewandelt werden." Source="mscorlib" StackTrace: bei System.Convert.ToInt64(Object value) bei ASP.privatepages_usercenter_aspx.SubmitButton_Click(Object sender, EventArgs e) in d:\pfad\usercenter.aspx:Zeile 497. bei System.Web.UI.WebControls.Button.OnClick(EventArgs e) bei System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) bei System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) bei System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) bei System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) bei System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
|
Wie ihr im Code seht habe ich es mal mit ExecuteReader() probiert, aber es kommt der Fehler bei der Umwandlung. Wenn ich es so mache, wie du es beschrieben hast, mit ExecuteScalar(), dann krieg ich folgende Exception bei der Umwandlung:
C++: |
System.InvalidCastException wurde nicht von Benutzercode behandelt. Message="Ein Objekt kann nicht von DBNull in andere Typen umgewandelt werden." Source="mscorlib" StackTrace: bei System.DBNull.System.IConvertible.ToInt64(IFormatProvider provider) bei System.Convert.ToInt64(Object value) bei ASP.privatepages_usercenter_aspx.SubmitButton_Click(Object sender, EventArgs e) in d:\pfad\usercenter.aspx:Zeile 497. bei System.Web.UI.WebControls.Button.OnClick(EventArgs e) bei System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) bei System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) bei System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) bei System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) bei System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
|
Dieser Post wurde am 21.01.2007 um 12:05 Uhr von Eroli editiert. |