webForumDet fria alternativet

ASP.Net Lägga till info i databas problem

.NET

4 svar · 215 visningar · startad av patric82

Medlem sedan aug. 200240 inlägg
Frågan#1

Hej,

Jag har ett formulär med Textboxar som man fyller i information och därefter klickar på en spara knapp. Informationen sparas i en databas.

Detta fungerar bra, problemet är bara att man måste fylla i alla textrutor annars genereras ett fel, och informationen sparas ej i databasen.

I databasen har jag satt obligatorisk till nej.
Jag använder mig av parameter frågor.

Felet som visas när man inte fyller i alla textrutor:
----------------------------------------------------------------------------------
En OLE DB-åtgärd i flera steg genererade fel. Kontrollera alla OLE DB-statusvärden som finns tillgängliga. Inget arbete utfördes.

Line 53: Cmd.Connection.Open()
Line 54: Cmd.ExecuteNonQuery
Line 55: catch ex as OleDbException
----------------------------------------------------------------------------------

Del av koden:
----------------------------------------------------------------------------------
dim Cmd as OleDbCommand = new OleDbCommand ("Staff_Add", Conn)
Cmd.CommandType = CommandType.StoredProcedure

dim Param as OleDbParameter
Param = Cmd.Parameters.Add("@Name", OleDbType.BSTR)
Param.Direction = ParameterDirection.Input
Param.Value = Name.Text

Param = Cmd.Parameters.Add("@Phone", OleDbType.BSTR)
Param.Direction = ParameterDirection.Input
Param.Value = Phone.Text

  try
     Cmd.Connection.Open()
     Cmd.ExecuteNonQuery
  catch ex as OleDbException
     Label1.Text = ex.Message
  finally
     Cmd.Connection.Close()
  end try

----------------------------------------------------------------------------------

Bifogat komplett kod. (Add.txt)

Patric

Medlem sedan apr. 20012 266 inlägg
#2

Tror att det ska gå att ange i SPn att den är valfri, du kan testa det. För när jag har använt MS SQL Server så får jag inge error pga. ej i fyllda fält, utan de blir bara blanka. Du kan även testa att sätta en "length" på parametrarna.

Param = Cmd.Parameters.Add("@Phone", OleDbType.BSTR, 50)
Medlem sedan aug. 200240 inlägg
#3

Vad är SPn ?
Använder Access 2000.

Att sätta in en length hjälpte inte.

Medlem sedan apr. 20012 266 inlägg
#4

ok, med sp menar jag Stored Procedure

Medlem sedan maj 20012 812 inlägg
#5

I access så har man 2 parametrar som måste ställas.

1. obligatorisk = Nej
2. Tillåt nolllängd = Ja

Om 2 är Nej så kommer det inte fungera fast du satt 1 till Ja

- M

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)