c#winforms упаковка в .exe с данными SQLite
уважаемые программисты, помогите пожалуйста, пытаюсь собирать .exe файл телефонный справочник с БД SQLite, без ошибок Ребилдится, после устанавливаю приложению, пытаюсь запустит приложение просто не запускается окно , пару раз крутится стрелка и все больше никаких действий не происходит , пробовал просто без Баз данных все прекрасно работает. проблема возникает с SQLite и базой. как исправить помогите пожалуйста !
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.SQLite;
namespace prob
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
DataTable dt = new DataTable("telefon");
private SQLiteCommand sql_cmd;
private SQLiteConnection con = new SQLiteConnection("Data source=telefon.db");
SQLiteDataAdapter adapter = new SQLiteDataAdapter();
int id;
public void Connect()
{
con.Open();
SQLiteDataAdapter adapter = new SQLiteDataAdapter("Select * From telefon", con);
DataSet dset = new DataSet();
adapter.Fill(dset);
dataGridView1.DataSource = dset.Tables[0];
con.Close();
}
private void ExecuteQuery(string txtQuery)
{
Connect();
con.Open();
sql_cmd = con.CreateCommand();
sql_cmd.CommandText = txtQuery;
sql_cmd.ExecuteNonQuery();
con.Close();
}
private DataTable AutoNumberedTable(DataTable SourceTable)
{
DataTable ResultTable = new DataTable();
DataColumn AutoNumberColumn = new DataColumn();
AutoNumberColumn.ColumnName = "id";
AutoNumberColumn.DataType = typeof(int);
AutoNumberColumn.AutoIncrement = true;
AutoNumberColumn.AutoIncrementSeed = 1;
AutoNumberColumn.AutoIncrementStep = 1;
ResultTable.Columns.Add(AutoNumberColumn);
ResultTable.Merge(SourceTable);
return ResultTable;
}
private void Form1_Load(object sender, EventArgs e)
{
Connect();
dataGridView1.EnableHeadersVisualStyles = false;
dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.Lime;
dataGridView1.ColumnHeadersDefaultCellStyle.Font = new Font("Times new Roman", 13, FontStyle.Bold);
dataGridView1.ColumnHeadersHeight = 25;
dataGridView1.DefaultCellStyle.Font = new Font("Times new Roman", 12);
dataGridView1.Columns[0].Width = 40;
dataGridView1.Columns[1].Width = 178;
dataGridView1.Columns[2].Width = 100;
dataGridView1.Columns[3].Width = 120;
dataGridView1.Columns[4].Width = 116;
dataGridView1.Columns[5].Width = 80;
dataGridView1.Columns[0].HeaderCell.Value = "ID";
dataGridView1.Columns[1].HeaderCell.Value = "Name";
dataGridView1.Columns[2].HeaderCell.Value = "work number";
dataGridView1.Columns[3].HeaderCell.Value = "cell number";
dataGridView1.Columns[4].HeaderCell.Value = "depertament";
dataGridView1.Columns[5].HeaderCell.Value = "Faks";
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
}
private void Addbutton_Click(object sender, EventArgs e)
{
con.Open();
string sql = "insert into telefon(id, name, depertament, worknumber, phone, faks) Values (null, '" + textBox2.Text + "', '" + textBox3.Text + "', '" + textBox4.Text + "', '" + textBox5.Text + "', '" + textBox6.Text + "')";
this.dataGridView1.DataSource = AutoNumberedTable(dt);
SQLiteCommand command = new SQLiteCommand(sql, con);
command.ExecuteNonQuery();
con.Close();
MessageBox.Show("Adedd");
textBox2.Text = string.Empty;
textBox3.Text = string.Empty;
textBox4.Text = string.Empty;
textBox5.Text = string.Empty;
textBox6.Text = string.Empty;
Connect();
}
private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
id = Convert.ToInt32(dataGridView1.CurrentRow.Cells[0].Value.ToString());
textBox2.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
textBox3.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
textBox4.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();
textBox5.Text = dataGridView1.CurrentRow.Cells[3].Value.ToString();
textBox6.Text = dataGridView1.CurrentRow.Cells[4].Value.ToString();
}
private void delete(int id)
{
string sql = "DELETE FROM telefon WHERE id=" + id + "";
sql_cmd = new SQLiteCommand(sql, con);
//OPEN CON, EXECUTE DELETE, CLOSE CON
try
{
con.Open();
adapter = new SQLiteDataAdapter(sql_cmd);
adapter.DeleteCommand = con.CreateCommand();
adapter.DeleteCommand.CommandText = sql;
// PROMT FOR CONFIRMATION
if (sql_cmd.ExecuteNonQuery() > 0)
{
MessageBox.Show("Deleted");
}
con.Close();
Connect();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void Deletebutton_Click(object sender, EventArgs e)
{
string selected = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
int id = Convert.ToInt32(selected);
delete(id);
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
con.Open();
string query = "Select * From telefon where name like '%" + textBox1.Text + "%' OR depertament like '%" + textBox1.Text + "%' OR worknumber like '%" + textBox1.Text + "%' OR phone like '%" + textBox1.Text + "%'";
DataSet dset = new DataSet();
SQLiteDataAdapter adapter = new SQLiteDataAdapter(query, con);
SQLiteCommandBuilder builder = new SQLiteCommandBuilder(adapter);
adapter.Fill(dset);
dataGridView1.DataSource = dset.Tables[0];
con.Close();
}
private void Updatebutton_Click(object sender, EventArgs e)
{
try
{
con.Open();
sql_cmd = new SQLiteCommand("update telefon SET name='" + textBox1.Text + "', depertament='" + textBox1.Text + "', worknumber='" + textBox1.Text + "', phone='" + textBox1.Text + "', faks='" + textBox1.Text + "'", con);
sql_cmd.ExecuteNonQuery();
MessageBox.Show("Updated!");
con.Close();
Connect();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}


