PDA

View Full Version : سوال: مشکل در تست کردن ارتباط با کانکشن استرینگ



vahidth
شنبه 25 آذر 1391, 16:18 عصر
سلام
من یه پروژه با سی شارپ میخوام بسازم در ابتدا ش موندم
یه بانک به نام db2 ساختم و اونو Detach کردم و بعد اونو به پروژه به این صورت اضافه کردم
در منوی Solutine Explorer روی پروژه کلیک راست کردم و گزینه Add===Existing Item رو انتخاب کردم و بانک رو به برنامه اضافه کردم و کد کانکشن استرینگ رو به این صورت نوشتم
SqlConnection cnn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\db2.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
و برای تست ارتباط یک تکست باکس و یک دکمه گذاشتم و داخل دکمه ان کد رو نوشتم
textBox1.Text = cnn.Database;
اما وقتی برنامه رو اجرا میکنم و رو دکمه کلیک میکنم هیچ چیزی در تکست باکس نوشته نمیشه؟

vahidth
شنبه 25 آذر 1391, 17:16 عصر
از دوستان یکی منو کمک کنه

vahidth
یک شنبه 26 آذر 1391, 17:31 عصر
کسی نمیدونه مشکل از کجاست؟...

programerinfonet
یک شنبه 26 آذر 1391, 17:39 عصر
شاید اتچ نمیشه ؟
یک بار دستی اتچش کن ببین جواب میده
منم از کانکشن بالا برای اتچ کردن بانک به صورت خودکار استفاده کردم اما جواب نگرفتم

vahidth
یک شنبه 26 آذر 1391, 20:46 عصر
میشه بگی چطوری داداش دستی اتچ کنم

vahidth
یک شنبه 26 آذر 1391, 21:27 عصر
در ضمن داداش اطلاعات insert رو وارد میکنم در جدول ذخیره میشه ولی وقتی ارتباط رو تست میکنم چیزی در تکست باکس نمینویسه

klinton
یک شنبه 26 آذر 1391, 22:08 عصر
try
cnn.open
textbox=cnn.connectionstring.tostring
cnn.close
catch

cnn.close
end try

programerinfonet
یک شنبه 26 آذر 1391, 22:32 عصر
منظورم تو خود اس کیو ال هستش
تو اس کیو ال روی سرورت کلیک راست کن گزینه ی اتچ رو بزن بعد برو بانکت رو انتخاب و ok

vahidth
یک شنبه 26 آذر 1391, 22:34 عصر
داداش این کد رو تو یه دکمه قرار دادم ارور میده
داداش من میخوام به پروژه ام اتچ کنم بصورتی که اگه یه فایل ستاپ براش ساختم برنامه خودکار اجرا بشه و پیام نده که دیتابیس رو اتچ کن

Nima_kyan
دوشنبه 27 آذر 1391, 02:27 صبح
سلام
کانکشن استرینگ رو اصلاح کنید و به جاش این رو بزارید درست میشه.

SqlConnection cnn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\db2.mdf;Integrated Security=True;");
ضمنا این کدتون رو

textBox1.Text = cnn.Database;
بعد از باز کردن کانکشنتون قرار بدید.
به این شکل

cnn.Open();
textBox1.Text = cnn.Database;
cnn.Close();

vahidth
دوشنبه 27 آذر 1391, 09:10 صبح
داداش یه پایگاه داداه دیگه ساختم بنام data base و بعد اونو Detach کردم و روی پروژم کلیک راست کردم و گزینه New--- Existing item رو انتخاب و از پنجره باز شده دیتابیس رو که ساختم به پروژه اضافه کردم ولی وقتی کدها رو نوشتم به این صورت
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace new_project
{
public partial class Form1 : Form
{
SqlConnection cnn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\database.mdf;Integrated Security=True;");
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
DataView dv = new DataView();

public Form1()
{
InitializeComponent();
}

private void btnsave_Click(object sender, EventArgs e)
{

try
{
DialogResult Result_Save = MessageBox.Show("آیا اطلاعات مشتری ثبت شوند؟", "ثبت اطلاعات", MessageBoxButtons.YesNo);
if (Result_Save == DialogResult.Yes)
{
cnn.Open();
SqlCommand my_cn = new SqlCommand("insert into table1(id,name,family ) values(@cd_temp,@name_temp,@family_temp)", cnn);
my_cn.Parameters.AddWithValue("@cd_temp", Int32.Parse(textBox1.Text));
my_cn.Parameters.AddWithValue("@name_temp", textBox2.Text);
my_cn.Parameters.AddWithValue("@family_temp", textBox3.Text);

my_cn.ExecuteNonQuery();
Form1_Load(sender, e);
}
}
catch (SqlException ex)
{
if (ex.Number == 2627)//درصورتی که کد کالا تکراری بود
{
MessageBox.Show(" این کد قبلا ثبت شده ", "ثبت اطلاعات");

}
}
finally
{
if (cnn.State != ConnectionState.Closed)
{
cnn.Close();
}
}
}

private void Form1_Load(object sender, EventArgs e)
{
da = new SqlDataAdapter("select * from table1", cnn);
ds.Clear();
da.Fill(ds, "table1");
dataGridView1.DataSource = ds.Tables["table1"]; ;
}
}
}

انگار دیتابیس رو نمیشناسه
96801
نمیدونم چیکار کنم

vahidth
دوشنبه 27 آذر 1391, 11:02 صبح
از دوستان یکی منو کمک کنه
میخوام بدونم که شما چطوری وقتی دیتابیس رو ساختین و اونو detach کردین چطوری با سی شارپ ارتباط با دیتابیس برقرار میکنین میشه تصویری بگین

Nima_kyan
دوشنبه 27 آذر 1391, 11:33 صبح
داداش یه پایگاه داداه دیگه ساختم بنام data base و بعد اونو Detach کردم و روی پروژم کلیک راست کردم و گزینه New--- Existing item رو انتخاب و از پنجره باز شده دیتابیس رو که ساختم به پروژه اضافه کردم
دوست عزیز واسه این کار نیازی نیست شما دیتابیستون رو به سولوشن پروژه اضافه کنید.
کافیه اول دیتابیس رو دیتچ کنید و دوتا فایل اون رو تو مسیر پروژه تون کپی کنید(تو فولدر bin\Debug)
حالا با همون کانکشن استرینگی که گزاشتین باید کار کنه. اگرنه باید بقیه موارد رو چک کنید. مثلا اینکه اصلا داده ای تو جدولتون هست یا نام جدولتون تو دیتابیس table1 هستش
اگه این موارد درستن،کد form_Load تون رو هم به این کد تغییر بدین.


da = new SqlDataAdapter("select * from table1", cnn);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;

موفق باشید

vahidth
دوشنبه 27 آذر 1391, 12:01 عصر
نشد داداش یه پروژه دیگه ساختم
و بانک رو به این نام دادم asd و جدول رو با این نام ساختم zx
داداش پروژه رو برات اپلود کردم
دانلود (http://uploadtak.com/images/y557_WindowsFormsApplicat.rar)
نگاه کن ببین از چیه؟

vahidth
دوشنبه 27 آذر 1391, 13:08 عصر
از دوستان یکی کمک کنه