C# i insert sql

Odpowiedz Nowy wątek
2011-09-05 21:55
Roni
0

Witam czy mógłby ktoś pomóc przy dodawaniu wiersza do tabeli.
Utworzyłem w Visualu baze danych, potem utworzylem w niej tabele, uworzylem Data Sorce View z wykorzystaniem wszczesniej utworzonej tabeli. Moje polaczenie i wykonanie operacji insert wyglada astepujaco:

 
string sConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|Baza_danych.mdf;Integrated Security=True;User Instance=True";
 
SqlConnection objConn = new SqlConnection(sConnectionString);
objConn.Open();
string sSQL = "INSERT INTO[dbo].[Table2]([Imię i Nazwisko], [Numer komputera]) VALUES(@Imię_i_Nazwisko, @Numer_komputera)";
SqlCommand objCmd = new SqlCommand(sSQL, objConn);
objCmd.Parameters.AddWithValue("@Numer_komputera", nr_komputera);
objCmd.Parameters.AddWithValue("@Imie_i_Nazwisko", imie_nazwisko);
objCmd.ExecuteNonQuery();
 

Ktos wie co jest źle?
Za wszelka pomoc bede bardzo wdzieczny.

Pozdrawiam.

Pozostało 580 znaków

2011-09-05 22:57
0

Spróbuj tak:

string sSQL = "INSERT INTO nazwa_tabeli (Imię i Nazwisko, Numer komputera) VALUES(@Imię_i_Nazwisko, @Numer_komputera)";
SqlCommand objCmd = new SqlCommand(sSQL, objConn);
objConn.Open();
...

EDIT: Podejrzewam, że to jest aplikacja konsolowa, więc możesz zrobić jeszcze tak:

string nr=Convert.ToString(Console.Readline());
string nazwisko=Convert.ToString(Console.Readline());
 
 SqlConnection objConn=new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|Baza_danych.mdf;Integrated Security=True;User Instance=True");
 
string sSQL = @"INSERT INTO nazwa_tabeli (Nazwisko, Numer) VALUES('" + nazwisko +"','" + nr +"')";
SqlCommand objCmd = new SqlCommand(sSQL, objConn);
try{
  objConn.Open();
  objCmd.ExecuteNonQuery();
}
catch(Exception ex){
  MessageBox.Show(ex.ToString());
}
finally{
if(objConn.State==ConnectionState.Open)
  objConn.Close();
}

Idiots, idiots everywhere.
edytowany 6x, ostatnio: allocer, 2011-09-05 23:13

Pozostało 580 znaków

2011-09-05 23:05
0
  1. jakiś błąd, komunikat, cokolwiek???????????????????????????????????????????????????????????????????????????????????????????????????????????????????
  2. za nazywanie kolumn Imię i Nazwisko czy Numer komputera ktoś powinien Ci rączki uciąć!
  3. Open nie pomoże - open jest do zapytań wybierających dane, do zapytań zmieniających dane jest ExecuteNonQuery

- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2011-09-06 08:18
Roni
0

Witam,

Problem jest taki, że nie dopisuje nowych rekordów do bazy. Nie daje żadnego błędu nic tylko nie dopisuje do bazy. I wyglada mi na to jak by cos bylo z

 objCmd.ExecuteNonQuery(); 

bo gdy dalem messagebox z komunikatem ze zakonczone dodawanie do bazy to ten messagebox sie nie pojawial a w momecie gdy nie bylo tej liniki messagebox sie pojawial.

Pozostało 580 znaków

2011-09-06 08:47
0
string sSQL = "INSERT INTO[dbo].[Table2]([Imię i Nazwisko], [Numer komputera]) VALUES(@Imię_i_Nazwisko, @Numer_komputera)";
objCmd.Parameters.AddWithValue("@Imie_i_Nazwisko", imie_nazwisko);

Porównaj sobie nazwy parametrów.
Możesz również spróbować w tej drugiej linijce podać bez @

A Misiekd ma częściowo rację - nie rączki, a jaja.

Pozostało 580 znaków

2011-09-06 09:31
Roni
0

Stworzylem nowa baze danych wszystko od nowa, pozmienialem nawzy kolumn w tabeli i dalej nic.

Pozostało 580 znaków

2011-09-06 10:07
0

a zakomitowałeś zmiany?


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2011-09-06 10:41
ste
0

Podrzucam mały przykład może Cię jakoś naprowadzi.

 SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings[1].ToString());
                con.Open();
            try
            {
                SqlCommand myCommand = new SqlCommand("insert into dbo.[1] (rewriting) values ('"+TextBox2.Text+"')", con);
                string myReader = (string)myCommand.ExecuteScalar();
 
            }
            catch { }
            con.Close();

Z Textboxa pobiera text i wrzuca go do kolumny rewriting w tabeli dbo.[1]. Pamiętaj o " ' " w nawiasie po values.
Pozdrawiam.

Pozostało 580 znaków

2011-09-06 11:24
ROni
0

Zrobilem teraz taki prościutki program

using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        string sConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True";
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection objConn = new SqlConnection(sConnectionString);
                objConn.Open();
                string sSql = "INSERT INTO [dbo].[Table2] ([imie]) VALUES ('sdsad')";
                SqlCommand objCmd = new SqlCommand(sSql, objConn);
                objCmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
            this.table2TableAdapter.Fill(this.database1DataSet.Table2);
 
        }
    }
}
 

Do bazy nic sie nie dodaje, a powinien dodawac sie ciag 'sdsad'. Baza danych utworzona o nazwie Database1.mdf, dataset o nazwie Database1DataSet.xsd.

Nie wiem jak to ogarnac.

Pozostało 580 znaków

2011-09-06 12:01
0

Poczytaj, co to robi:
AttachDbFilename=|DataDirectory|\Database1.mdf
Nie ułatwię ci zadania, bo się niczego nie nauczysz...

Pozostało 580 znaków

2011-09-06 17:31
Roni
0

Dzieki za wszystkie cenne rady. Udalo mi sie uporac z tym problemem. Tylko teraz mam jeszcze jeden problem. Dodalem kontrolke datagridview tylko mam taki problem ze akutalizuje sie ona dopiero przy ponownym uruchomieniu programu. Mogbym prosic o jakies wskazowki?

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0