Gå til innhold

C#: [Løst]Textbox insert to sql problem


Anbefalte innlegg

Håper noen kan hjelpe meg litt på vei.

Har prøvd å søke litt rundt på mitt problem.

 

Problemmet er.

Jeg har en MSSQL database.

Den heter Testdata. Der har jeg en tabell som heter Registrering.

 

I den tabellen har jeg 3 felter. Kundenummer.Int, Bongnummer.Int, Totalsum.dec.(18,2).

Jeg har 1 form. Den er det 3 textbox'er på.

Så hvis jeg taster inn noen tall i de 3 textbox'ene, så skulle de gjerne legges inn i denne tabellen.

Men er det noen ut ifra denne koden jeg har lagt med, som kan fortelle meg hva jeg har gjort feil, eller glemt?

 

 

private void button4_Click(object sender, EventArgs e)
	{
		try
		{
			SqlCommand insertparam = new SqlCommand();
			insertparam.CommandText = "insert into Registrering VALUES(@Kundenummer, @Bongnummer, @Totalsum";

			SqlConnection mycon = new SqlConnection("Data Source = .\\SQLEXPRESS;Initial Catalog=Testdata;Integrated Security=SSPI");

			insertparam.Parameters.Add("@Kundenummer", SqlDbType.Int, "Kundenummer");
			insertparam.Parameters.Add("@Bongnummer", SqlDbType.Int, "Bongnummer");
			insertparam.Parameters.Add("@Totalsum", SqlDbType.Decimal,(18.2), "Totalsum");
			insertparam .Parameters["@Kundenummer"].Value = textBox1.Text;
			insertparam.Parameters ["@Bongnummer"].Value = textBox2.Text;
			insertparam.Parameters["@Totalsum"].Value = textBox3.Text;

 

Det står dette som feilmelding:

The best overloaded method match for 'System.Data.SqlClient.SqlParameterCollection.Add(string, System.Data.SqlDbType, int)' has some invalid arguments

 

cannot convert from 'string' to 'int'

Lenke til kommentar
Videoannonse
Annonse

Hei

 

1. Har ikke så mye erfaring med MSSQL-databaser men i System.Data.OracleClient skriver vi iallfall parameterne med kolon (:).

 

2. Feilmeldingen får du fordi det er ingen overload av Add som støtter tekststreng i den tredje parameteren i SqlCommand.Add. Såvidt jeg kan se er ikke AddWithValue deprecated enda så hvorfor ikke bruke den?

 

Koden din ville sett slik ut:

	SqlCommand insertparam = new SqlCommand();
insertparam.CommandText = "INSERT INTO Registrering VALUES(:Kundenummer, :Bongnummer, :Totalsum)";

			SqlConnection mycon = new SqlConnection("Data Source = .\\SQLEXPRESS;Initial Catalog=Testdata;Integrated Security=SSPI");

			insertparam.Parameters.AddWithValue("Kundenummer", textBox1.Text);
			insertparam.Parameters.AddWithValue("Bongnummer", textBox2.Text);
			insertparam.Parameters.AddWithValue("Totalsum", textbox3.Text);

 

 

EDIT: Du manglet en høyreparentes i sql-setningen din.

Endret av Vial
Lenke til kommentar

Eller, du kan rett og slett bruke LINQ

 

var NyRegistrering = new Registrering;
NyRegistrering.Kundenummer = int.Parse(textBox1.Text);
NyRegistrering.BongNummer = int.Parse(textBox2.Text);
NyRegistrering.TotalSum = int.Parse(textBox3.Text);
MyDB.Registrering.InsertOnSubmit(NyRegistrering);
MyDb.SubmitChanges();

Du må selvsagt lage deg et Linq2SQL klassesett, men det gjør jo VS av seg selv. Bare å bruke Drag'n Drop.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...