Avatar billede larsholm Nybegynder
13. december 2007 - 13:31 Der er 10 kommentarer

indsæt data til listbox

Jeg har lavet en listbox hvor jeg ville have min data ind i fra min db. Problemet er jeg får fejlen ( listen is a variable but is used like a method )
Jeg har p+røver en masse forskellige ting men har nu stiret mig blind håber der er en der kan hjælpe.
-------------------------------------------------------------------------------


            private void SøgFilmBnt1_Click(object sender, EventArgs e)
                  {
                      try
                      {
                          FilmListeBox.Items.Clear();
                          DataSet result;
                          String insStr = "select * from Film where titel like ";
                          insStr += "%' and FilmTitel like '";
                          insStr += FilmTitelText.Text;
                          insStr += "%' and Director like '";
                          insStr += DirectorTextBox.Text;
                          insStr += "%' and Length like '";
                          insStr += LenghtBox.Text;
                          insStr += "%' and Skuespiller '";
                          insStr += SkuTextBox.Text;
                          insStr += "%' and Producent '";
                          insStr += ProTextBox.Text;
                          SqlConnection listen = new SqlConnection();
                          result = listen (insStr);                         
                          int antal = result.Tables["res"].Rows.Count;
                          for (int i = 0; i < antal; i++)
                          {
                              FilmListeBox.Items.Add(result.Tables["res"].Rows[i]["Titel"].ToString());
                          }
                      }
                      catch (Exception ex)
                      {
                          MessageBox.Show("Fejl i din søgning\n" + ex.Message.ToString());
                      }
                     
   
   
            }
        }
    }
Avatar billede bvli Praktikant
13. december 2007 - 13:55 #1
Din variable listen (som er en sqlconnection) kan du ikke tildele result på den måde som du gør. (Du tilgår din variabel som en metode, præcis som fejlmeddelelsen siger)

Det ser ud som om dit eksempel ikke er helt færdigt. Hvor får du din connectionString fra? Og vil du bruge en DataReader eller et DataSet?

/B :)
Avatar billede larsholm Nybegynder
13. december 2007 - 14:11 #2
Dataset bliver brugt her er hele formen. Ved ikke om det gør det nemmer at forstå

.......................................................................

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace LLBIO
{
    public partial class AdminFilm : Form
    {
        public string FilmID;        // public string movieid; 
        public AdminFilm()
        {
            InitializeComponent();
        }

        private void OpretFilmBnt_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(Form1.conStr);
            string insStr = "insert into Film (FilmTitel, Director, Length, Skuespiller, Producent) values ('" +
            FilmTitelText.Text + "','" + DirectorTextBox.Text + "','" + LenghtBox.Text + "','" + SkuTextBox.Text + "','" + ProTextBox.Text +"')";

            MessageBox.Show("Film Oprettet");
                                                                                                                               
            SqlCommand cmd = new SqlCommand(insStr, con);
            try { con.Open(); cmd.ExecuteNonQuery(); }
            catch (Exception ex) { MessageBox.Show(ex.Message); };
            //cmd.ExecuteNonQuery();
            try { con.Close(); }
            catch { };

        }

        private void TilføjBillede_Click(object sender, EventArgs e) ///// Billede box
        {
            pictureBox1.ImageLocation = BilledeStiBox.Text; //// Billede location
        }

        private void SletFilmBnt_Click(object sender, EventArgs e)  //// Slet film knap
        {
            SqlConnection con = new SqlConnection(Form1.conStr);
            string insStr = ("delete from Film where FilmID = " + FilmID + "'");
            MessageBox.Show("Film slettet!");
        }
         
                  private void SøgFilmBnt1_Click(object sender, EventArgs e)
                  {
                      try
                      {
                          FilmListeBox.Items.Clear();
                          DataSet result;
                          String insStr = "select * from Film where titel like ";
                          insStr += "%' and FilmTitel like '";
                          insStr += FilmTitelText.Text;
                          insStr += "%' and Director like '";
                          insStr += DirectorTextBox.Text;
                          insStr += "%' and Length like '";
                          insStr += LenghtBox.Text;
                          insStr += "%' and Skuespiller '";
                          insStr += SkuTextBox.Text;
                          insStr += "%' and Producent '";
                          insStr += ProTextBox.Text;
                          SqlConnection listen = new SqlConnection();
                          result = SqlConnection. (insStr);                         
                          int antal = result.Tables["res"].Rows.Count;
                          for (int i = 0; i < antal; i++)
                          {
                              FilmListeBox.Items.Add(result.Tables["res"].Rows[i]["Titel"].ToString());
                          }
                      }
                      catch (Exception ex)
                      {
                          MessageBox.Show("Fejl i din søgning\n" + ex.Message.ToString());
                      }
                     
   
   
            }

        private DataSet SqlConnection(string insStr)
        {
            throw new Exception("The method or operation is not implemented.");
        }
        }
    }
Avatar billede skov_p Praktikant
13. december 2007 - 19:57 #3
Du mangler en SQL command.Du prøver at hive data ud af din connection.
Du skal gøre som du gør her:

SqlConnection con = new SqlConnection(Form1.conStr);
            string insStr = "insert into Film (FilmTitel, Director, Length, Skuespiller, Producent) values ('" +
            FilmTitelText.Text + "','" + DirectorTextBox.Text + "','" + LenghtBox.Text + "','" + SkuTextBox.Text + "','" + ProTextBox.Text +"')";

            MessageBox.Show("Film Oprettet");
                                                                                                                               
            SqlCommand cmd = new SqlCommand(insStr, con);
            try { con.Open(); cmd.ExecuteNonQuery(); }
            catch (Exception ex) { MessageBox.Show(ex.Message); };
            //cmd.ExecuteNonQuery();
            try { con.Close(); }
            catch { };
Avatar billede skov_p Praktikant
13. december 2007 - 20:00 #4
du kan fx. bruge en reader
SqlDataReader reader = cmd.ExecuteReader();
while(reader.Read(){
list.Items.Add(reader.GetString("Titel"));
}
Avatar billede larsholm Nybegynder
14. december 2007 - 08:40 #5
Jeg må være ærlig, jeg ved ikke hvor i kode jeg skla smide det her ind.

du kan fx. bruge en reader
SqlDataReader reader = cmd.ExecuteReader();
while(reader.Read(){
list.Items.Add(reader.GetString("Titel"));
}
Avatar billede skov_p Praktikant
14. december 2007 - 08:56 #6
Her er et eksempel, men du skal selv sætte exception handling ind

private void ReadData() {
      SqlConnectionStringBuilder conStr = new SqlConnectionStringBuilder();
      conStr.DataSource = "localhost";//Server
      conStr.InitialCatalog = "OF2E505";//Database name
      conStr.UserID = "sa";
      conStr.Password = "qwert54";

      SqlConnection con = new SqlConnection(conStr.ConnectionString);
     
      SqlCommand cmd = new SqlCommand( "", con );
     
      cmd.CommandText = "Select * FROM OrderLine";
      cmd.Connection.Open();
      SqlDataReader reader = cmd.ExecuteReader();
      while( reader.Read() )
        listBox1.Items.Add( reader["OrderNo"].ToString() );
      cmd.Connection.Close();
    }
Avatar billede opcm_ip Nybegynder
14. december 2007 - 10:22 #7
Mener at dette er en hurtig og let løsning:
    DataSet ds = new DataSet();
    SqlConnection con = new SqlConnection("connectionstring");
    SqlCommand cmd = new SqlCommand("SELECT * ...", cmd);
    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
    adapter.Fill(ds);
    ListBox1.DataSource = ds;
    ListBox1.DataBind();
Avatar billede skov_p Praktikant
14. december 2007 - 11:42 #8
Opcm_ip:
Du mangler vel at binde en bestemt kolonne fra dit data set til listboksen
Avatar billede opcm_ip Nybegynder
14. december 2007 - 12:32 #9
Jeg undskylder, det gik lidt for stærkt:
    DataSet ds = new DataSet();
    SqlConnection con = new SqlConnection("Connectionstring");
    SqlCommand cmd = new SqlCommand("SELECT...", con);
    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
    adapter.Fill(ds);
    ListBox1.DataSource = ds;
    ListBox1.DataValueField = ds.Tables[0].Columns[0].ColumnName;
    ListBox1.DataBind();
Avatar billede skov_p Praktikant
28. januar 2008 - 21:32 #10
Hvordan går det
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester