PDA

View Full Version : مشکل در درج و نمایش اطلاعات در دیتابیس بعداز ورود مجدد به برنامه



sg.programmer
پنج شنبه 12 بهمن 1391, 22:11 عصر
سلام
چرا اطلاعات در دیتابیس بعد از اجرای مجدد نمایش داده نمیشه
تمامی اطلاعات ثبت و درج میشه ولی بعد از ورود مجدد اطلاعات صفر میشه


private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Length > 0 )
{
string cnStr =@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Massagedb.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
// "Data Source = " + System.Net.Dns.GetHostName() + ";Initial Catalog = Northwind;;Integrated Security = true";
if (DB.dbConnected(cnStr))
{
DB myDB = new DB();
string insCmd = "Insert into tbl_user(famili) values('" + textBox1.Text + "')";
MessageBox.Show(myDB.insert(cnStr, insCmd));
fillDgView();
textBox1.Text = "";

}
else
{
MessageBox.Show("Connection failed." + Environment.NewLine + "Check your connection string.", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
else
{
MessageBox.Show("Information not complete.", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}

public void fillDgView()
{
//string cnStr = "Data Source = " + System.Net.Dns.GetHostName() + ";Initial Catalog = Northwind;;Integrated Security = true";
//MessageBox.Show(System.Net.Dns.GetHostName());
string cnStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Massagedb.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
if (DB.dbConnected(cnStr))
{
DB myDB = new DB();
dgView.DataSource = myDB.select(cnStr, "Select id,famili from tbl_user").Tables[0];
}
else
{
MessageBox.Show("Connection failed." + Environment.NewLine + "Check your connection string.", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}

private void frm_Add_Load(object sender, EventArgs e)
{
fillDgView();
}



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace Massage
{
public class DB
{
public DB()
{
//Constructor
}
public static bool dbConnected(string ConnectionString)
{
SqlConnection cn = new SqlConnection(ConnectionString);
try
{
cn.Open();
cn.Close();
return true;
}
catch (Exception ex)
{
return false;
}
}

public string insert(string ConnectionString, string InsertCommand)
{
try
{
SqlConnection cn = new SqlConnection(ConnectionString);
SqlCommand insCmd = new SqlCommand(InsertCommand, cn);
cn.Open();
insCmd.ExecuteNonQuery();
cn.Close();
return "Insert 1 record successful.";
}
catch (Exception ex)
{
return ex.StackTrace.ToString();
}
}

public string update(string ConnectionString, string UpdateCommand)
{
try
{
SqlConnection cn = new SqlConnection(ConnectionString);
SqlCommand updCmd = new SqlCommand(UpdateCommand, cn);
cn.Open();
updCmd.ExecuteNonQuery();
cn.Close();
return "Update successful.";
}
catch (Exception ex)
{
return ex.StackTrace.ToString();
}
}

public string delete(string ConnectionString, string DeleteCommand)
{
try
{
SqlConnection cn = new SqlConnection(ConnectionString);
SqlCommand delCmd = new SqlCommand(DeleteCommand, cn);
cn.Open();
delCmd.ExecuteNonQuery();
cn.Close();
return "Delete successful.";
}
catch (Exception ex)
{
return ex.StackTrace.ToString();
}
}

public DataSet select(string ConnectionString, string SelectCommand)
{
SqlConnection cn = new SqlConnection(ConnectionString);
//SqlCommand insCmd = new SqlCommand(SelectCommand);
SqlDataAdapter da = new SqlDataAdapter(SelectCommand, cn);
DataSet ds = new DataSet();
cn.Open();
da.Fill(ds);
cn.Close();
return ds;
}
}
}

rezaei_y
پنج شنبه 12 بهمن 1391, 22:45 عصر
اگه منظورتون اینه که پس از هر بار اجرای برنامه در محیط ویژوال استادیو اطلاعات قبلی ذخیره شده در بانک پاک میشه به این دلیل که با هر بار اجرا بانک اولیه روی بانکی که در پوشه debug هست کپی میشه و بانک خالی میشه

اگه میخواید که اطلاعاتتون با هر بار اجرا پاک نشه در پنجره خصوصیات دیتابیس گزینه Copy To Output Directory را روی گزینه Copy if never قرار بده

sg.programmer
پنج شنبه 12 بهمن 1391, 23:17 عصر
تشکر اقای رضایی با انجام اینکار درست شد
میشه بیشتر توضیح بدیدکه چطور هست و چرا دیتابیس کپی میشه مگه من با خود فایل دیتابیس کار نمیکنم * مگه اطلاعات مستقیم وارد آن نمیشه

rezaei_y
یک شنبه 15 بهمن 1391, 10:52 صبح
اگه توجه کرده باشید شما تا قبل از ایجاد فایل setup برای پروژه تون دوتا دیتابیس دارید یکی همنیه که به پروژه تون اضافه میکنید و دیگری داخل پوشه دیباگ ایجاد میشه هنگام اجرای پروژه بانک اطلاعاتی اولیه که هنگام ایجاد جداول جدید از اون استفاده میکنید همونی که کنار بقیه فرم هاتون هست توی پوشه دیباگ و کنار فایل اجرایی کپی میشه و فایل اجرایی از اون استفاده میکنه بدیهیه که بار هر بار اجرا بانک خالی بشه

اما هنگام ایجاد فایل ستاپ برای پروژه تون یک بانک بیشتر نخواهید داشت و دیگه این مشکلو ندارید