Jump to content
Sign in to follow this  
bønna35

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

Recommended Posts

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'

Share this post


Link to post

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.

Edited by Vial

Share this post


Link to post

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.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...