Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > TableAdapter и работа с ним


Автор: belka0107 18.8.2013, 09:48
Подскажи плиииз, что же я делаю не так.
Видела много вопросов на эту тему, но ничего не помогает. Предстоит сделать добавление, редактирование и удаление из DGV, начала с удаления и запись никак не удаляется из БД. Пробовала разными способами здесь представлен вариант сделанный по аналогии с msdn.

Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using Kuzya.KuzyaDataSetTableAdapters;

namespace Kuzya
{
    public partial class MaterialForm : Form
    {
        SqlDataAdapter sAdapter;
        SqlCommand sCommand;
        SqlCommandBuilder sBuilder;
        DataSet sDs;
        DataTable sTable;
        KuzyaDataSet ds = new KuzyaDataSet();
        MaterialTableAdapter tadapter = new MaterialTableAdapter();

        public MaterialForm()
        {
            InitializeComponent();
            fillData();

            materialDataGridView.RowHeadersVisible = false;
        }

        public void fillData()
        {
            using (SqlConnection c = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|KuzyaDB.mdf;Integrated Security=True"))
            {
                c.Open();
                try
                {
                    var newds = tadapter.GetData();

                    BindingSource bs1 = materialBindingSource;
                    bs1.DataSource = newds;

                    materialBindingNavigator.BindingSource = bs1;
                    materialDataGridView.DataSource = bs1;
                    materialDataGridView.Columns[0].HeaderText = "#";
                    materialDataGridView.Columns[1].HeaderText = "Название";
                    materialDataGridView.Columns[2].HeaderText = "Количество(кг)";
                }
                catch (SqlException ex)
                {
                    Console.WriteLine(@"SQL Error: {0}", ex);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(@"Error: {0}", ex);
                }
            }
        }

        private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)
        {
            int id = (int)materialDataGridView.SelectedRows[0].Cells[0].Value;
            String name = (String)materialDataGridView.SelectedRows[0].Cells[1].Value;

            using (SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|KuzyaDB.mdf;Integrated Security=True"))
            {
                try
                {
                    tadapter.Delete(id, name);
                    tadapter.Fill(ds.Material);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("error = " + ex);
                }
                
            }
        }

    }
}



И еще вопрос, возможно ли как-то вывести/посмотреть логи sql в C# ?

Автор: jonie 28.8.2013, 15:34
Цитата(belka0107 @  18.8.2013,  10:48 Найти цитируемый пост)

И еще вопрос, возможно ли как-то вывести/посмотреть логи sql в C# ? 

используйте трассивровщик MSSQL  (Sql Server Profiler)

Автор: belka0107 29.8.2013, 22:48
Все просто оказалось. При дебаге база куда-то копируется и данные не сохраняются.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)