نمایش نتایج 1 تا 15 از 15

نام تاپیک: مشکل این کد چیه (ساده) درج در بانک

  1. #1
    کاربر دائمی
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    ایران زمین
    پست
    412

    مشکل این کد چیه (ساده) درج در بانک

    این کد را برای درج در بانک sql اکسپرس نوشتم ولی نمیدونم چرا در قسمت اینزررت وقتی روی باتن کلیک میکنم ارور میده البته اگه کسی کار با دیتا ست هم تو این درج قرار بده ممنون میشم .

    private
    void button1_Click(object sender, EventArgs e)
    {
    SqlConnection conn = newSqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + "\\Database1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
    SqlCommand cmd = newSqlCommand();
    SqlDataAdapter da = newSqlDataAdapter();
    DataTable dt = newDataTable();
    DataSet ds =newDataSet();

    if (txtfname.Text == "" || txtlname.Text == "" || txtcodozv.Text == "")
    {
    MessageBox.Show("error");
    }
    conn.Open();
    cmd.CommandText = (
    "INSERT INTO Database1(" + "codeozviat," + "fname," + "lname," + "namepedar," + "tarikhtavalod," + "shomaremeli," + "telephon," + "address," + "tarikhozviat," + "tarikhengheza" + ") VALUSE(" + txtcodozv.Text + "," + txtfname.Text + "," + txtlname.Text + "," + txtnamepedar.Text + "," + mtxttarikhtavalod.Text + "," + Convert.ToInt16(txtmeli.Text) + "," + Convert.ToInt16(txttelephon.Text ) + "," + txtaddress.Text + "," + mtxttarikhozviat.Text + "," + mtxttarikhengheza.Text);
    cmd.Connection = conn;
    cmd.ExecuteNonQuery();
    conn.Close();

    }

  2. #2

    نقل قول: مشکل این کد چیه (ساده) درج در بانک

    " + "codeozviat," + "fname," + "

    احتیاجی به گذاشتن کوتیشن برای فیلد هات نیست

    درضمن اون ارور چیه
    یا بقول دوست مون کد بزاره
    یا فیلد های جدولت از چه نوع ای هست

    اگه این موارد مشخص کنی زودتر به جواب میرسی

  3. #3
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: مشکل این کد چیه (ساده) درج در بانک

    VALUSE باید بشه VALUES
    باید در آخر کد یه پرانتز بسته اضافه کنید.
    و بهتره که از سینتکس ''N برای فیلد های رشته ای استفاده کنید.

  4. #4
    کاربر دائمی
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    ایران زمین
    پست
    412

    نقل قول: مشکل این کد چیه (ساده) درج در بانک

    ممنون دوستان از اینکه راهنمایی کردید
    از اینکه گفتین سورس را قرار بده کل سورس برنامه من همینه یعنی برای امتحان همین یه تیکه را نوشتم که با اررور مواجه شدم در ضمن values را هم درست کردم و کلیه فیلد های من از نو nchar(...) است و وارد کردن سه فیلد اول اجباریه دوستان از لطفتون ممنون من این برنامه را خیلی زود احتیاج دارم لطف کنید راهنمایی کنید
    در ضمن سینتکس "N یعنی چی؟

  5. #5
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: مشکل این کد چیه (ساده) درج در بانک

    باید در آخر کد یه پرانتز بسته اضافه کنید.
    این کار رو کردید؟
    سینتکس ''N هم یعنی اینکه
    , " + textbox1.text + ",      ----->        , N'" + textbox1.text + "',      

  6. #6
    کاربر دائمی
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    ایران زمین
    پست
    412

    نقل قول: مشکل این کد چیه (ساده) درج در بانک

    پرانتز که درسته اضافه کردم ولی سینتکس میده .
    ولی من
    قسمت اینزرت را با این کد تغییر دادم

    cmd.CommandText = (
    "insert into aza values('" + txtcodozv + "','" + txtfname + "','" + txtlname + "','" + txtnamepedar + "','" + mtxttarikhtavalod + "','" + txtmeli + "','" + txttelephon + "','" + txtaddress + "','" + mtxttarikhozviat + "','" + mtxttarikhengheza + "')");

    ولی حالا در قسمت
    cmd.ExecuteNonQuery();
    ارور میده یعنی اجرا میشه ولی وقتی داده وارد میکنم وکلیک میکنم اینجا گیر میکنه
    در ضمن من فیلد های تاریخ را در mask قرار دادم (فکر نکنم مشکلی باشه چون در دیتابیس همشون از نوع nchar هستند)
    ممنونم دوست عزیز

  7. #7
    کاربر دائمی
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    ایران زمین
    پست
    412

    نقل قول: مشکل این کد چیه (ساده) درج در بانک

    پرانتز که درسته (زوج)
    ولی من قسمت اینزرت را با این کد تغییر دادم

    cmd.CommandText = (
    "insert into aza values('" + txtcodozv + "','" + txtfname + "','" + txtlname + "','" + txtnamepedar + "','" + mtxttarikhtavalod + "','" + txtmeli + "','" + txttelephon + "','" + txtaddress + "','" + mtxttarikhozviat + "','" + mtxttarikhengheza + "')");

    حالا در قسمت

    cmd.ExecuteNonQuery();
    ارور میده یعنی برنامه اجرا میشه وقتی داده وارد میکنم و کلیک میکنم این قسمت ارور میده ممنون دوست عزیز منتظرم
    اگه یه نمونه کار در همین زمینه بدی ممنون میشم والا موندم توش

  8. #8
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1384
    محل زندگی
    مشهد
    پست
    42

    نقل قول: مشکل این کد چیه (ساده) درج در بانک

    گلم ارورت مربوط به کانکشنت نی ؟
    شکل درست دستور هم :
    ("+insert into post (post_creator,post_date,post_text)values("+text1.t ext+","+text2.text+","+text3.text

  9. #9
    کاربر دائمی آواتار Yasersadegh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    اروميه
    پست
    393

    نقل قول: مشکل این کد چیه (ساده) درج در بانک

    سلام خدمت همه دوستان عزیز
    نقل قول نوشته شده توسط mammad_asir مشاهده تاپیک
    این کد را برای درج در بانک sql اکسپرس نوشتم ولی نمیدونم چرا در قسمت اینزررت وقتی روی باتن کلیک میکنم ارور میده البته اگه کسی کار با دیتا ست هم تو این درج قرار بده ممنون میشم .

    private
    void button1_Click(object sender, EventArgs e)
    {
    SqlConnection conn = newSqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + "\\Database1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
    SqlCommand cmd = newSqlCommand();
    SqlDataAdapter da = newSqlDataAdapter();
    DataTable dt = newDataTable();
    DataSet ds =newDataSet();

    if (txtfname.Text == "" || txtlname.Text == "" || txtcodozv.Text == "")
    {
    MessageBox.Show("error");
    }
    conn.Open();
    cmd.CommandText = (
    "INSERT INTO Database1(" + "codeozviat," + "fname," + "lname," + "namepedar," + "tarikhtavalod," + "shomaremeli," + "telephon," + "address," + "tarikhozviat," + "tarikhengheza" + ") VALUSE(" + txtcodozv.Text + "," + txtfname.Text + "," + txtlname.Text + "," + txtnamepedar.Text + "," + mtxttarikhtavalod.Text + "," + Convert.ToInt16(txtmeli.Text) + "," + Convert.ToInt16(txttelephon.Text ) + "," + txtaddress.Text + "," + mtxttarikhozviat.Text + "," + mtxttarikhengheza.Text);
    cmd.Connection = conn;
    cmd.ExecuteNonQuery();
    conn.Close();

    }
    دوست عزيز من كامند استرينگ در پست اولتون رو به شكل زير تغيير دادم!! اگه نوع فيلدهاي بانكتون رو درست حدس زده باشم با اين كد مشكلي پيش نخواهد اومد!!

    cmd.CommandText = "INSERT INTO Database1(codeozviat,fname,lname,namepedar,tarikht avalod,shomaremeli,telephon,address,tarikhozviat,t arikhengheza) VALUSE('" + txtcodozv.Text + "',N'" + txtfname.Text + "',N'" + txtlname.Text + "',N'" + txtnamepedar.Text + "','" + mtxttarikhtavalod.Text + "'," + Convert.ToInt16(txtmeli.Text) + "," + Convert.ToInt16(txttelephon.Text ) + ",N'" + txtaddress.Text + "','" + mtxttarikhozviat.Text + "','" + mtxttarikhengheza.Text+"')";


    نقل قول نوشته شده توسط mammad_asir مشاهده تاپیک
    ولی حالا در قسمت
    cmd.ExecuteNonQuery();
    ارور میده یعنی اجرا میشه ولی وقتی داده وارد میکنم وکلیک میکنم اینجا گیر میکنه
    در ضمن من فیلد های تاریخ را در mask قرار دادم (فکر نکنم مشکلی باشه چون در دیتابیس همشون از نوع nchar هستند)
    ممنونم دوست عزیز
    دوست عزيز اروري كه در قيمت ExecuteNonQuery به شما ميده مربوط ميشه به همين كامند استريگتون!!
    كدي كه گذاشتم رو جايگزين كد پست اولتون كنيد انشاالله مشكلتون حل ميشه!!
    موفق باشيد

  10. #10
    کاربر دائمی
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    ایران زمین
    پست
    412

    نقل قول: مشکل این کد چیه (ساده) درج در بانک

    ممنون دوست عزیز من قسمت اینزرت را با کد زیر تغییر دادم

    cmd.CommandText = (
    "+insert into aza (codeozviat,fname,lname,namepedar,tarikhtavalod,sh omaremeli,telephon,address,tarikhozviat,tarikhengh eza)values("+txtcodozv+","+txtfname+","+txtlname +","+txtnamepedar +","+mtxttarikhtavalod +","+txtmeli +","+txttelephon +","+txtaddress +","+mtxttarikhozviat +","+mtxttarikhengheza );

    ولی بازم در قسمت
    cmd.ExecuteNonQuery();

    اررور میده
    به فریادم برسید***

  11. #11
    کاربر دائمی آواتار Yasersadegh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    اروميه
    پست
    393

    نقل قول: مشکل این کد چیه (ساده) درج در بانک

    دوست عزيز چرا اينطوري مي كنيد!!
    من به شما مي گم كدي كه براتون گذاشتم رو جايگذين كنيد برميداريد كدتون رو هر طور مي خواهيد تغيير مي ديد دوباره پيغام ميديد كه ارور داره!!
    دوست عزيز كاري كه بهتون گفتم رو انجام بديد مشكلتون حل ميشه!!
    مشكل كد شما هم اينه كه علامت تك كوتيشن برايه فيلدهاي nvarchar نذاشتيد!!(به كدي كه گذاشتم مراجعه كنيد!)

    موفق باشيد

  12. #12

    نقل قول: مشکل این کد چیه (ساده) درج در بانک

    mamod asir کدتون که پر از اشکاله بعدشم به خطاهایی که میده دقت کنید خودش میگه کجای دستورinsert مشکل داره از کد زیر هم میتونید استفاده کنید کلا اگه از روش ارسال پارامتر استفاده کنید بهتره
    strSQL = "insert into table(name,family,code) values(@nm,@fam,@cd)";
    con.Open();
    com = new SqlCommand(strSQL, con);
    com.Parameters.Add("@nm", SqlDbType.NVarChar).Value = textBox1.Text;
    com.Parameters.Add("@fam", SqlDbType.NVarChar).Value = textBox2.Text;
    com.Parameters.Add("@cd", SqlDbType.NVarChar).Value = textBox3.Text;
    com.ExecuteNonQuery();
    con.Close();
    قبل از فرم لود:
    private string strSQL;
    private SqlConnection con;
    private SqlDataAdapter da;
    private SqlCommand com;
    در فرم لود :
    con = new SqlConnection();
    con.ConnectionString = (@"data source=.\sqlexpress;Initial catalog=databasename;Integrated Security=true");

    تغییراته مربوط به کد insert رو خودتون بدین منظورم نوشتن فیلدای خودتون و نام تیبل . nm@ یا fam@ نام پارامتری هست که ارسال میشه واسه هر فیلدی خودتون یه چیزی بزارید

  13. #13
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: مشکل این کد چیه (ساده) درج در بانک

    نقل قول نوشته شده توسط mammad_asir مشاهده تاپیک
    ممنون دوست عزیز من قسمت اینزرت را با کد زیر تغییر دادم

    cmd.CommandText = (
    "+insert into aza (codeozviat,fname,lname,namepedar,tarikhtavalod,sh omaremeli,telephon,address,tarikhozviat,tarikhengh eza)values("+txtcodozv+","+txtfname+","+txtlname +","+txtnamepedar +","+mtxttarikhtavalod +","+txtmeli +","+txttelephon +","+txtaddress +","+mtxttarikhozviat +","+mtxttarikhengheza );

    ولی بازم در قسمت
    cmd.ExecuteNonQuery();

    اررور میده
    به فریادم برسید***
    دوست عزیز لطفا" یه ذره به کدتون دقت کنید.

    شما هنوز اون پرانتزی رو که دو مرتبه و با این بار سه مرتبه است که بتون گفتم رو ننوشتی.

    ","+mtxttarikhengheza ); ----->>> ","+mtxttarikhengheza + ")" );


    راستی اون + قبل از insert چیه؟

  14. #14
    کاربر دائمی
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    ایران زمین
    پست
    412

    نقل قول: مشکل این کد چیه (ساده) درج در بانک

    ممنون دوستان عزیز
    آقای yaser sadegh من کانکتم به اینترنت قطع و وصل میشد واسه همین صفحه دوم پاسخ را ندیدم ببخشید
    ممنون دوستان عزیز با اضافه کردن کد زیر دیگه ارور نمیده

    cmd.CommandText =
    "INSERT INTO aza(codeozviat,fname,lname,namepedar,tarikhtavalod ,shomaremeli,telephon,address,tarikhozviat,tarikhe ngheza) VALUES('" + txtcodozv.Text + "',N'" + txtfname.Text + "',N'" + txtlname.Text + "',N'" + txtnamepedar.Text + "','" + mtxttarikhtavalod.Text + "'," + Convert.ToInt32(txtmeli.Text) + "," + Convert.ToInt32(txttelephon.Text) + ",N'" + txtaddress.Text + "','" + mtxttarikhozviat.Text + "','" + mtxttarikhengheza.Text + "')";
    ولی وقتی من در بانک درج میکنم با کد زیر

    privatevoid frm_listozv_Load(object sender, EventArgs e)
    {
    // this.azaTableAdapter.Fill(this.database1DataSet1.a za);

    DataSet ds = newDataSet();
    SqlDataAdapter da = newSqlDataAdapter();
    string strsql = "SELECT * FROM aza";
    SqlConnection conn = newSqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + "\\Database1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
    conn .Open();
    da =
    newSqlDataAdapter (strsql, conn);
    da .Fill(ds,
    "aza");
    dataGridView1.DataBindings.Add(
    newBinding("DataSource", ds, "aza"));
    conn.Close();
    dataGridView1.ReadOnly =
    true;
    }
    جدول را در داخل رویداد لود فرم دیگه داخل دیتا گرید ویو نشون میدم جدول را با در نظر گرفتن رکورد جدید نشون میده ولی وقتی در قسمتserver explorer با راست کلیک روی جدول مورد نظر گذینه show table data را انتخاب میکنم دیگه اون رکورد های اضافه شده را در جدول نمیبینم و وقتی دوباره برنامه را اجرا میکنم دیگه اون فیلد های قبلی رو نشون نمیده یعنی در پایگاه ذخیره نمیکنه باید چه کدی را در کدام قسمت اضافه کنم در ضمن اگه بخوام کار اضافه کردن را با دیتاست (برای سرعت بیشتر) انجام بدم با ید چه کنم
    ممنون دوستان دمتون گرم از کمکهاتون
    خیلی ببخشدی گیر عجب آدم .... اوفتادین شما.

  15. #15
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: مشکل این کد چیه (ساده) درج در بانک

    1.GOOGLE خیلی سریعتر میتونه مشکل شما رو حل کنه.
    2.دیتاست مهمترین عامل کاهش سرعت برنامه هاست.
    3.کد شما اصلا" دستور insert رو انجام نمیده.
    4.بهتره که از sqlcommandbuilder استفاده کنید.
    5.بهتره اول یکم sql یاد بگیرید بعد برنامه بنویسید و دوستان رو هم با error های مسخره خسته نکنید.

    موفق باشید(سال دیگه که برنامه نویسی یاد گرفتید)
    google
    google
    google
    google
    google

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •