PDA

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



arash691
یک شنبه 26 خرداد 1392, 18:29 عصر
سلام دوستان کلاس زیر برای اعمال مختلف روی یک بانک اطلاعاتی هستش ... من در هنگام ثبت کردن مشکل دارم و هنگام ثبت یک SqlException دریافت میکنم . که میگه کوئری مشکل داره ولی هرچی بررسی میکنم مشکلی نمیبینم :(

متد Insert مشکل داره ...

اگه میشه شما هم یه نگاهی بندازین ...

کد کلاس ...


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.Drawing;

namespace bank_4
{
static class Bank
{
static SqlConnection sql_con;
static SqlCommand sql_com;
static SqlDataAdapter sql_da;
static DataSet ds;

private static void Connect()
{
sql_con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=" +
@"c:\documents and settings\arash\my documents\visual studio 2010\Projects\bank_4\bank_4\test1.mdf" +
";Integrated Security=True;User Instance=True");

}
public static void Refresh(DataGridView dgv)
{
try
{
Connect();
sql_con.Open();
sql_com = new SqlCommand();
sql_com.CommandText = "select * from Tbl_Students";
sql_com.Connection = sql_con;
sql_da = new SqlDataAdapter();
sql_da.SelectCommand = sql_com;
ds = new DataSet("my_ds");
sql_da.Fill(ds, "my_ds");
dgv.DataSource = ds;
dgv.DataMember = "my_ds";
sql_con.Close();
}
catch (SqlException sql_exc)
{
MessageBox.Show(sql_exc.Message);
}
}
public static void Open_Picture(PictureBox pb)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.FileName = "";
ofd.Filter = "JPEG Files(*.JPG,*.JPEG)|*.JPG|Bitmap Files(*.bmp)|*.bmp|TIF Files(*.tif)|*.tif";
DialogResult d = ofd.ShowDialog();
if (ofd.FileName != "" && d != DialogResult.Cancel)

pb.Image = Image.FromFile(ofd.FileName);

}
public static void Insert(int id,string name,string family,float hw,float mt,float lt,float pro,PictureBox pb)
{
try
{

// pic to array
byte[] pic_buffer = null;
System.IO.MemoryStream ms = new System.IO.MemoryStream();
pb.Image.Save(ms, pb.Image.RawFormat);
pic_buffer = ms.GetBuffer();
ms.Close();
// sql connect and insert
sql_com.CommandText =
"insert into Tbl_Students(ID,Name,Family,Homework(3),Midterm(5) ,Term(8),Project(4),Image)Values(@ID,@Name,@Family ,@Homework(3),@Midterm(5),@Term(8),@Project(4),@Im age)";
sql_com.Parameters.Clear();
sql_com.Parameters.Add("@ID", SqlDbType.Int).Value = id; // add id
sql_com.Parameters.Add("@Name", SqlDbType.NVarChar).Value = name; // add name
sql_com.Parameters.Add("@Family", SqlDbType.NVarChar).Value = family; // add family
sql_com.Parameters.Add("@Homework(3)", SqlDbType.Float).Value = hw; // add homework
sql_com.Parameters.Add("@Midterm(5)", SqlDbType.Float).Value = mt; // add midterm
sql_com.Parameters.Add("@Term(8)", SqlDbType.Float).Value = lt; // add lastterm
sql_com.Parameters.Add("@Project", SqlDbType.Float).Value = pro; // add project
sql_com.Parameters.Add("@Image", SqlDbType.Image).Value = pic_buffer; // add picture
Connect();
sql_com.Connection = sql_con;
sql_con.Open();
sql_com.ExecuteNonQuery();
sql_con.Close();

}
catch (SqlException sql_ex)
{
MessageBox.Show(sql_ex.Message, "Error");
}
}
}
}


عکس پیغام :

105645

khokhan
یک شنبه 26 خرداد 1392, 18:48 عصر
در قسمت پارامتر ها (@ID,@Name,@Family ,@Homework(3),@Midterm(5),@Term(8),@Project(4),@Im age)"; داخل پارانتیز 4 گذاشتین

اما در قسمت کامند این (4) وجود ندارد


sql_com.Parameters.Add("@Project", SqlDbType.Float).Value = pro;

درستش اینه که


sql_com.Parameters.Add("@Project(4)", SqlDbType.Float).Value = pro;

arash691
یک شنبه 26 خرداد 1392, 18:57 عصر
در قسمت پارامتر ها (@ID,@Name,@Family ,@Homework(3),@Midterm(5),@Term(8),@Project(4),@Im age)"; داخل پارانتیز 4 گذاشتین

اما در قسمت کامند این (4) وجود ندارد


sql_com.Parameters.Add("@Project", SqlDbType.Float).Value = pro;

درستش اینه که


sql_com.Parameters.Add("@Project(4)", SqlDbType.Float).Value = pro;

این رو هم درست کردم ولی باز خطا میده

vistacali
یک شنبه 26 خرداد 1392, 19:04 عصر
مشکل در پرانتز ها است پرانز value رو بردار بعد اون همه پرانز واسه چی هست این وست ؟؟؟؟؟؟؟؟؟؟؟؟؟

khokhan
یک شنبه 26 خرداد 1392, 19:15 عصر
اگه توی تیبل مربوطه در نام فیلدها او پارانتیز ها وجود نداره اینو امتحان کن
sql_com.CommandText =
"insert into Tbl_Students(ID,Name,Family,Homework,Midterm,Term, Project,Image)Values(@ID,@Name,@Family,@Homework,@ Midterm,@Term,@Project,@Image)";
sql_com.Parameters.Clear();
sql_com.Parameters.Add("@ID", SqlDbType.Int).Value = id; // add id
sql_com.Parameters.Add("@Name", SqlDbType.NVarChar).Value = name; // add name
sql_com.Parameters.Add("@Family", SqlDbType.NVarChar).Value = family; // add family
sql_com.Parameters.Add("@Homework", SqlDbType.Float).Value = hw; // add homework
sql_com.Parameters.Add("@Midterm", SqlDbType.Float).Value = mt; // add midterm
sql_com.Parameters.Add("@Term", SqlDbType.Float).Value = lt; // add lastterm
sql_com.Parameters.Add("@Project", SqlDbType.Float).Value = pro; // add project
sql_com.Parameters.Add("@Image", SqlDbType.Image).Value = pic_buffer; // add picture
Connect();

arash691
یک شنبه 26 خرداد 1392, 19:33 عصر
ممنون دوستان مشکل از پرانتزها بود ...