0

私はemployeeというテーブルを作成することで、SQL Server Express Editionでデータベースを作成しました。行(レコード)をテーブルに動的に挿入できるようになり、それらのレコードを正常に読み取ることもできます。しかし問題は、動的に挿入された値が一時的に保存されることです。アプリケーションを閉じて再度開くと、以前に挿入されたレコードは利用できません。レコードをデータベースに永続的に保存するにはどうすればよいか教えてください。

これは、SQL Server データベースにレコードを挿入するために使用する私のコードです。この問題から私を助けてください...

namespace VACS_practice
{
    public partial class Form1 : Form
    {
        string m_sVehicleNo, m_sName, m_sFlatNo, m_sImagpath;
        System.Data.SqlClient.SqlConnection Con;
        System.Data.SqlClient.SqlCommand Cmd;
        string ConString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\VACSDB.mdf;Integrated Security=True;User Instance=True";

        public Form1()
        {
            InitializeComponent();
        }

        private void btnAddClick(object sender, EventArgs e)
        {

            Con = new SqlConnection(ConString);
            m_sVehicleNo = m_VehicleNo.Text;
            m_sName = m_Name.Text;
            m_sFlatNo = m_Phno.Text;
            //m_sImagpath = m_ImgPath.Text;
            Cmd = new SqlCommand("INSERT INTO ResidentDB ([R_VehNo],[R_Name],[R_PhNo])   VALUES ('" + m_sVehicleNo + "','" + m_sName + "','" + m_sFlatNo + "')", Con);
            Con.Open();
            Cmd.ExecuteNonQuery();
            Con.Close();
            MessageBox.Show("Inserted successfully");
            // this.Close();
        }
    }
}
4

1 に答える 1

0

AttachDbFilename = | DataDirectoryを使用しているため、アプリを実行するたびに、ソリューション内の「テンプレート」.mdfによってデータベースが上書きされる可能性があると思います。データベースが「常にコピー」などとしてデプロイされていないことを確認してください。または、アプリケーションがローカル/ユーザーごとのデータベースを必要としない場合は、SQLExpressサービスの下でMDFを永続的に接続できます

于 2011-09-09T12:33:18.040 に答える