PDA

View Full Version : مشکل با execute none query



loveali
دوشنبه 12 مرداد 1394, 17:27 عصر
سلام
من یه برنامه ساده با C# و اکسس نوشتم و می خوام فرد اطلاعات رو در textbox پر کنه و داخل دیتابیس ذخیره بشه
ولی ارور رو می ده که ضمیمه کردم
اینم کدمه

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

namespace WindowsFormsApplication10
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

public void GetList()
{
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\users\\Muhammad\\Desktop\\DR.mdb");
OleDbDataAdapter DataA = new OleDbDataAdapter("select * from TBL_LIST",con);
DataTable DTable = new System.Data.DataTable();
DataA.Fill(DTable);
dataGridView1.DataSource = DTable;
}
private void Form1_Load(object sender, EventArgs e)
{
GetList();
}

private void button1_Click(object sender, EventArgs e)
{
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\users\\Muhammad\\Desktop\\DR.mdb");
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = con;
cmd.CommandText = "inset into TBL_LIST values(" + textBox1.Text + ",'" + textBox2.Text + "','" + textBox3.Text + "')";
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}

SabaSabouhi
سه شنبه 13 مرداد 1394, 10:44 صبح
سلام
همیشه script-ای که به sqlcommand می‌دی رو یک بار تو New Query خود Visual Studio یا Management Studio
تست کن.
تو این کد بجای INSERT نوشته بودی INSET یعنی یک R رو جا انداختی.
مشکل همین بود.

ضمن این که روشت تولید متنش خیلی اشکال داره. اگه کاربر تو ورودی یک کاراکتر «'» استفاده کنه، این Script خطا می‌ده. حتماً از SqlParameters استفاده کن که جلوی حملات SqlInjection رو هم بگیری.

صبا صبوحی