PDA

View Full Version : سوال : ذخیره نشدن داده ها در دیتابیس sql



bahar_engineer
یک شنبه 18 اسفند 1387, 17:18 عصر
سلام . من یک برنامه تحت ویندوز دارم می نویسم . الان مشکلی با اضافه کردن داده ها به بانک ندارم . بانکم sql که اطلاعات رو اضافه می کنه حتی در یک گریدویو هم نمایش می ده همان لحظه! اما وقتی فرم رو می بندم و دوباره باز می کنم تمام اطلاعات از داخل بانک پریده . اصلاً انگار ذخیره نمی شه فقط در یک حافظه مجازی می ره. چون بانک همیشه خالیه . فقط گرید ویو که به بانک وصله همون لحظه اطلاعات رو نمایش می ده و با بستن فرم و باز کردن مجدد دیگه اطلاعاتی وجود نداره. :متفکر:
ممنون می شم کمکم کنید
و خوشحالم که به این انجمن پیوستم

NewFoxStudent
یک شنبه 18 اسفند 1387, 17:40 عصر
اگه لطف کنید و کد ذخیره اطلاعات رو اینجا بزارید حتما بررسی میشه

bahar_engineer
دوشنبه 19 اسفند 1387, 10:36 صبح
ممنون از لطفتون
کدها اینهاست


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Design;
using System.Data.SqlClient;
using System.Drawing.Imaging;
using System.IO;


namespace childfriend
{
public partial class Form1 : Form
{
static string cc="Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\users.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
public SqlConnection con1 = new SqlConnection(cc);


public Form1()
{
InitializeComponent();
}

private string filename;



private void button1_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "image files (*.jpg) |*.jpg|"
+ " All files (*.*) |*.*";
openFileDialog1.FilterIndex = 1;
openFileDialog1.Title = " file open box";
// Show the OpenFileDialog and if the user clicks the
// Open button, load the file
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
//save the file name
filename = openFileDialog1.FileName;
//read the content of the file
textBox2.Text = System.IO.File.ReadAllText(filename);
}

textBox2.Text = filename;
}

private void button2_Click(object sender, EventArgs e)
{
string ks;
ks = " insert into users([name],[pic],[born],[color],[sleep],[toy])values('" + textBox1.Text + "','"+textBox2.Text+"','"+textBox3.Text+"','"+colorDialog1.Color.ToString()+"','"+textBox4.Text+"','"+comboBox2.Text+"')";
SqlCommand cmd1 = new SqlCommand(ks, con1);
con1.Open();
cmd1.ExecuteNonQuery();
label9.Text = "ثبت شد";
label10.Text = DateTime.Now.ToString();
con1.Close();


}

private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'bahar.users' table. You can move, or remove it, as needed.
this.usersTableAdapter.Fill(this.bahar.users);
}

private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
{

}

private void button3_Click(object sender, EventArgs e)
{
//save dialog
saveFileDialog1.DefaultExt = "jpg";
saveFileDialog1.FileName = filename;
saveFileDialog1.Filter = "image files (*.jpg) |*.jpg| All files (*.*) |*.*";
saveFileDialog1.FilterIndex = 1;
saveFileDialog1.OverwritePrompt = true;
saveFileDialog1.Title = "save the file";

//save the file if user clicked
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
//save the file
filename = saveFileDialog1.FileName;
System.IO.File.WriteAllText(filename, textBox2.Text);
}
}

private void button4_Click(object sender, EventArgs e)
{
if (colorDialog1.ShowDialog() == DialogResult.OK)
{
//set the backcolor of the form
this.ForeColor = colorDialog1.Color;
}
}

private void button5_Click(object sender, EventArgs e)
{
paint mypaint = new paint();
mypaint.Tag = this;
mypaint.ShowDialog();
}

private void button6_Click(object sender, EventArgs e)
{
view myview = new view();
myview.Tag = this;
myview.ShowDialog();
}

}
}
اینها کد صفحه ورود اطلاعات بود.

حالا کدهای صفحه ویو :


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace childfriend
{
public partial class view : Form
{
public view()
{
InitializeComponent();
}

private void view_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'ds1.users' table. You can move, or remove it, as needed.
this.usersTableAdapter.Fill(this.ds1.users);

}
}
}
فقط شامل یک دیتا گرید ویو است که خودش اتوماتیک اطلاعاتو نمایش می ده.
منتظر جواب های سخاوتمندانه شما هستم!

احمد سامعی
دوشنبه 19 اسفند 1387, 13:24 عصر
سلام . من یک برنامه تحت ویندوز دارم می نویسم . الان مشکلی با اضافه کردن داده ها به بانک ندارم . بانکم sql که اطلاعات رو اضافه می کنه حتی در یک گریدویو هم نمایش می ده همان لحظه! اما وقتی فرم رو می بندم و دوباره باز می کنم تمام اطلاعات از داخل بانک پریده . اصلاً انگار ذخیره نمی شه فقط در یک حافظه مجازی می ره. چون بانک همیشه خالیه . فقط گرید ویو که به بانک وصله همون لحظه اطلاعات رو نمایش می ده و با بستن فرم و باز کردن مجدد دیگه اطلاعاتی وجود نداره. :متفکر:
ممنون می شم کمکم کنید
و خوشحالم که به این انجمن پیوستم

احتمالا وقتي كمپايل مي كني يك نسخه از بانك به مسير كپي مي شه و شما در اون بانك ذخيره مي كني ... بعد كه دوباره برنامه رو باز مي كني يا كمپايل مي كني دوباره بانك در مسير قبلي خودش كپي مي كنه كه اين فايل خالي هميشه اين مشكل هست

شما بايد مسير دستي بده و جدا از مسير كمپايل و يا از قسمت پراپرتيز بانكت گذينه Copy غير فعال كني

ممكن هم هست مشكل چيز ديگه اي باشه
(يكم مبهم نوشتم:خجالت: اما منظورم امشاءالله مي فهمي...)

bahar_engineer
دوشنبه 19 اسفند 1387, 15:07 عصر
ممنونم اما من امتحان کردم با اکسس که راحت می شه دیدش

وقتی فرم را باز می کنم (برنامه را run می شه ) اطلاعاتو وارد می کنم . بعد همون موقع رفتم توی پوشه debug دیدم که در بانک اطلاعات من اضافه شده . فرم را هم که می بندم هنوز اطلاعات هستند. اما وقتی دوباره برنامه را run می کنم اطلاعات داخل بانک از درون پوشه debug پاک شده اند. انگار هر بار که ویژوال استدیو برنامه را دیباگ می کنه اطلاعات بانک منو پاک می کنه
!!!!!!

احمد سامعی
دوشنبه 19 اسفند 1387, 17:25 عصر
ممنونم اما من امتحان کردم با اکسس که راحت می شه دیدش

وقتی فرم را باز می کنم (برنامه را run می شه ) اطلاعاتو وارد می کنم . بعد همون موقع رفتم توی پوشه debug دیدم که در بانک اطلاعات من اضافه شده . فرم را هم که می بندم هنوز اطلاعات هستند. اما وقتی دوباره برنامه را run می کنم اطلاعات داخل بانک از درون پوشه debug پاک شده اند. انگار هر بار که ویژوال استدیو برنامه را دیباگ می کنه اطلاعات بانک منو پاک می کنه
!!!!!!

شما به جواب من دقت نكردي !؟
من همين گفتم هر بار كه شما برنامه رو كمپايل مي كني ويژول استديو از بانك اصلي يكي كپي مي كنه تو مسير ديباگ و شما از اون بانك استفاده كردي مشكل از برنامه نيست. برنامه درست.
مي توني واسه اين كه خيالت راحت بشه بعد از اين كه Run كردي و برنامه رو بستي دوباره بدون اين كه كمپايل كني برنامت Run كني. جواب قبلي من رو بخون چطور اين كارو از كمپايلر بگيري

mostafaaa
دوشنبه 19 اسفند 1387, 18:27 عصر
سلام دوست من
این رو ببین، فکر کنم که مشکلتون مشابه این دوستمون باشه
http://www.barnamenevis.org/forum/showthread.php?p=678340
یا علی

bahar_engineer
سه شنبه 20 اسفند 1387, 10:04 صبح
سلام
از همه دوستان ممنونم
مسئله من هم حل شد
خیلی خیلی لطف کردین:تشویق::لبخندساده: