PDA

View Full Version : یه سوال تکراری در مورد insert ولی اضطراری



samaneh313
یک شنبه 07 اسفند 1384, 09:46 صبح
سلام
با عرض معذرت برای اینکه شاید کمی سوالم تکراری باشه
من برای ورود اطلاعات به دیتابیسم از کد زیر استفاده می کنم
نمی دونم چرا فقط بعضی وقتا جواب می ده
لطفا کمکم کنید :گریه:
try
{
SqlConnection sqlconnectionMyTestDB =
new SqlConnection("server=(local);uid=sa;pwd=;database =samaneh");
SqlDataAdapter sqldataadapterEntry =
new SqlDataAdapter("select * from Table1", sqlconnectionMyTestDB);

String insertCmd = "INSERT INTO Table1 (num, name) VALUES( " +
"@num,@name )";

SqlCommand sqlcommandEntry = new SqlCommand(insertCmd, sqlconnectionMyTestDB);

sqlcommandEntry.Parameters.Add(
new SqlParameter("@num", SqlDbType.Int));
sqlcommandEntry.Parameters["@num"].Value = txtID.Text;

sqlcommandEntry.Parameters.Add(
new SqlParameter("@name", SqlDbType.Int));
sqlcommandEntry.Parameters["@name"].Value = txt_Entry_No.Text;


sqlcommandEntry.Connection.Open();
sqlcommandEntry.ExecuteNonQuery();
sqlcommandEntry.Connection.Close();

DataSet datasetEntry = new DataSet();
sqldataadapterEntry.Fill(datasetEntry, "Table1");

dataGrid1.DataSource=datasetEntry.Tables["Table1"].DefaultView;
dataGrid1.SetDataBinding(datasetEntry,"Table1");
dataGrid1.Visible = true;
}
catch (System.Data.SqlClient.SqlException sexception)
{
MessageBox.Show( sexception.StackTrace);

}

mehranFX
یک شنبه 07 اسفند 1384, 10:00 صبح
سمانه خانوم کدت رو توی تگ [code] بگذار تا بتونم کدت رو درست ببینم . ضمناَ آیا پیغام خطا دریافت کردی یا نه ، اگه جواب مثبته پیغام رو هم بذار!!!

ali_kolahdoozan
یک شنبه 07 اسفند 1384, 11:28 صبح
سمانه خانوم کدت رو توی تگ [code] بگذار تا بتونم کدت رو درست ببینم . ضمناَ آیا پیغام خطا دریافت کردی یا نه ، اگه جواب مثبته پیغام رو هم بذار!!!
این کدها رو اصلا نمیشه خوند درست که درستش کن .

nasimnastaran
یک شنبه 07 اسفند 1384, 14:14 عصر
String insertCmd = "INSERT INTO Table1 (num, name) VALUES( " +
"@num,@name )";

این معنی اش چیه ؟:گیج:
اولا رشته شما درست تعریف نشده( string نه String) ، ثانیا پارامترهای شما درست مقدار دهی نشده :مثال :


string commandText = "UPDATE mytable SET name = @name, mydate = @date";
SqlCommand command = new SqlCommand(commandText, myConnection);
command.Parameters.Add(new SqlParameter("@name", txtName.Text));
command.Parameters.Add(new SqlParameter("@date", dateTimePicker1.Value));

ضمنا سایت http://www.codeproject.com/cs/database و http://www.codeproject.com/csharp می تواند بسیار مفید باشد .

samaneh313
یک شنبه 07 اسفند 1384, 15:03 عصر
private void button1_Click(object sender, System.EventArgs e)
{
try
{
SqlConnection sqlconnectionMyTestDB =
new SqlConnection("server=(local);uid=sa;pwd=;database=samaneh");
SqlDataAdapter sqldataadapterEntry =
new SqlDataAdapter("select * from Table1", sqlconnectionMyTestDB);

string insertCmd = "INSERT INTO Table1 (num, name) VALUES( " +
"@num,@name)";

SqlCommand sqlcommandEntry = new SqlCommand(insertCmd, sqlconnectionMyTestDB);

sqlcommandEntry.Parameters.Add(
new SqlParameter("@num", SqlDbType.Int));
sqlcommandEntry.Parameters["@num"].Value = txtID.Text;

sqlcommandEntry.Parameters.Add(
new SqlParameter("@name", SqlDbType.NVarChar));
sqlcommandEntry.Parameters["@name"].Value = txt_Entry_No.Text;


sqlcommandEntry.Connection.Open();
sqlcommandEntry.ExecuteNonQuery();
sqlcommandEntry.Connection.Close();

DataSet datasetEntry = new DataSet();
sqldataadapterEntry.Fill(datasetEntry, "Table1");

dataGrid1.DataSource=datasetEntry.Tables["Table1"].DefaultView;
dataGrid1.SetDataBinding(datasetEntry,"Table1");
dataGrid1.Visible = true;
}
catch (System.Data.SqlClient.SqlException sexception)
{
MessageBox.Show( sexception.StackTrace);

}
}
وقتی به کد sqlcommandEntry1.ExecuteNonQuery(); می رسه وارد catch شده و پیغام میده

At System.Data.SqlClient.SqlCommand.ExecuteReader(Com mandBehavior,RunBehavior,
Boolean returnStream)
At System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
At end.form1.button1_Click(object sender,EventArgs e)in e:\proje\end\form1.cs:line587

mehranFX
یک شنبه 07 اسفند 1384, 15:22 عصر
sqlcommandEntry.Parameters["@num"].Value = int.parse(txtID.Text.trim());
این رو امتحان کن ببین درست نمی شه ؟

samaneh313
یک شنبه 07 اسفند 1384, 22:18 عصر
از توجهتون ممنونم
اما درست نشد

nasimnastaran
دوشنبه 08 اسفند 1384, 18:20 عصر
public class frmUsername : System.Windows.Forms.Form
{
....
SqlConnection sqlconnectionMyTestDB=
new SqlConnection(@"server=(local);database=samane;uid=first;pwd=smh");

....

private void button1_Click(object sender, System.EventArgs e)
{
try
{
sqlconnectionMyTestDB.Open();
string insertCmd = "INSERT INTO Table1 (num, name) VALUES( "@num,@name)";
SqlCommand sqlcommandEntry = new SqlCommand(insertCmd, sqlconnectionMyTestDB);
sqlcommandEntry.Parameters.Add(new SqlParameter("@num", txtnum.Text));
sqlcommandEntry.Parameters.Add(new SqlParameter("@name", txtName.Text));
SqlDataAdapter da=new SqlDataAdapter(insertCmd, sqlconnectionMyTestDB);
SqlCommandBuilder cmd=new SqlCommandBuider(da);
DataTable dt=new DataTable();
da.Fill(dt);
DataGrid1.DataSource=dt;
sqlcommandEntry.ExecuteNonQuery();
// Close and Clean up objects
sqlconnectionMyTestDB.Close();
sqlcommandEntry .Dispose();
sqlconnectionMyTestDB.Dispose();
}
catch(SqlException Exp)
{
MessageBox.Show(Exp.Message, "خطای اضافه کردن");
}
catch(Exception Exp)
{
MessageBox.Show(Exp.Message, "خطای اضافه");
}

}

امیدوارم این بتونه کمکت کنه ؟

سار
دوشنبه 08 اسفند 1384, 22:19 عصر
من ترجیح میدم از پارمتر استفاده نکنم و رشته SQL را خودم تولید کنم.
کنترلش خیلی راحت تره.

samaneh313
سه شنبه 09 اسفند 1384, 00:01 صبح
از کمک همگی ممنون
ولی من همچنان همون مشکل دارم
به نظرتون مشکل از sql نیست

reza_rad
سه شنبه 09 اسفند 1384, 07:56 صبح
یک بار با transact sql ببین میتونی insert کنی؟

nasimnastaran
سه شنبه 09 اسفند 1384, 19:21 عصر
این فایل ضمیمه همه چیزش درست است . اگر جواب نداد ، بدان که مشکل از جائی دیگر است
( از sql ببین authentication از تب security باید روی sqlserver and windows باشد )