PDA

View Full Version : Lỗi viết lệnh SQL trong windowform C#



kiemma1003
28-08-2009, 19:06
Các anh chị chú bác giúp dùm em. Em viết chương trình quản lý sách khi chạy nó cứ báo lỗi ở chỗ này sqlcom.ExecuteNonQuery();
Xin giúp dùm em với.

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.SqlClient;

namespace WindowsFormsApplication1
{
public partial class Frmthemsach : Form
{
public Frmthemsach()
{
InitializeComponent();
}

private void Frmthemsach_Load(object sender, EventArgs e)
{
load_Tl();
loaddata();

}
public void load_Tl()
{
SqlConnection link = ketnoidulieu.ketnoi();
SqlCommand cmd = new SqlCommand("select MaTL,TenTL from TheLoai", link);
SqlDataAdapter data = new SqlDataAdapter();
data.SelectCommand = cmd;
DataTable TbMatl = new DataTable();
data.Fill(TbMatl);
cb_maloai.DataSource = TbMatl;
cb_maloai.DisplayMember = "TenTL";
cb_maloai.ValueMember = "MaTL";
//comboBoxMaTL.DataBindings.Add("selectedvalue",Capnhatsach.DataSource,"MaTL");
link.Close();
}
private void btnThem_Click(object sender, EventArgs e)
{
SqlConnection da = ketnoidulieu.ketnoi();
string sql = "insert into Sach(MaS,TenS,MaTL,MaTG,MaNXB,NgayXB,SoLuong,SoLuo ngTon,DonGia)values (@MaS,@TenS,@MaTL,@MaTG,@MaNXB,@NgayXB,@SoLuong,@S oLuongton,@DonGia)";
SqlCommand sqlcom = new SqlCommand(sql, da);
sqlcom.Parameters.AddWithValue("@MaS", txtMaS.Text);
sqlcom.Parameters.AddWithValue("@TenS", txtTenS.Text);
sqlcom.Parameters.AddWithValue("@MaTL", cb_maloai.SelectedValue.ToString());
sqlcom.Parameters.AddWithValue("@MaTG", txtMaTG.Text);
sqlcom.Parameters.AddWithValue("@MaNXB", txtMaNXB.Text);
sqlcom.Parameters.AddWithValue("@NgayXB", datpics_NgayXB.Value.ToString());
try
{
sqlcom.Parameters.AddWithValue("@SoLuong", int.Parse(txtsoluong.Text));
}
catch
{

MessageBox.Show(" Số lượng phải nhập kí tự số: ");
}
try
{
sqlcom.Parameters.AddWithValue("@SoLuongTon", int.Parse(txtsoluongton.Text));
}
catch
{

MessageBox.Show(" Số lượng tồn phải là kí tự số: ");
}
sqlcom.Parameters.AddWithValue("@DonGia", txtdongia.Text);
sqlcom.ExecuteNonQuery();
string comand = "select* from Sach";
sqlcom.CommandText = comand;
SqlDataAdapter data = new SqlDataAdapter();
data.SelectCommand = sqlcom;
DataSet ds1 = new DataSet();
data.Fill(ds1);
da.Close();
dtgv_capnhatsach.DataSource = ds1.Tables[0];
}

private void btnXoa_Click(object sender, EventArgs e)
{
Xoa_Sach();
loaddata();
}
public void loaddata()
{
SqlConnection link = ketnoidulieu.ketnoi();
string lenhsql = "select * from Sach";
SqlCommand cmd = new SqlCommand(lenhsql, link);
SqlDataAdapter data = new SqlDataAdapter();
data.SelectCommand = cmd;
DataSet ds = new DataSet();
data.Fill(ds);
link.Close();
dtgv_capnhatsach.DataSource = ds.Tables[0];
}
public void Xoa_Sach()
{
SqlConnection link = ketnoidulieu.ketnoi();
string sql = "delete from Sach where MaS='" + txtMaS.Text + "'";
SqlCommand sqlcom = new SqlCommand(sql, link);
sqlcom.ExecuteNonQuery();
link.Close();
}

private void btt_sua_Click(object sender, EventArgs e)
{
SqlConnection da = ketnoidulieu.ketnoi();
string sql = "update sach set MaS=@Mas , TenS=@TenS , MaTL=@MaTL ,MaTG=@MaTG,MaNXB=@MaNXB,NgayXB=@NgayXb,SoLuong=@S oLuong,SoLuongTon=@SoLuongTon,DonGia=@DonGia, DonViTinh=@DonViTinh where MaS='" + txtMaS.Text + "'";
SqlCommand sqlcom = new SqlCommand();
sqlcom.Connection = da;
sqlcom.CommandText = sql;
sqlcom.Parameters.AddWithValue("@MaS", txtMaS.Text);
sqlcom.Parameters.AddWithValue("@TenS", txtTenS.Text);
sqlcom.Parameters.AddWithValue("@MaTL", cb_maloai.SelectedIndex.ToString());
sqlcom.Parameters.AddWithValue("@MaTG", txtMaTG.Text);
sqlcom.Parameters.AddWithValue("@MaNXB", txtMaNXB.Text);
sqlcom.Parameters.AddWithValue("@NgayXB", datpics_NgayXB.Text);
sqlcom.Parameters.AddWithValue("@SoLuong", txtsoluong.Text);
sqlcom.Parameters.AddWithValue("@SoLuongTon", txtsoluongton.Text);
sqlcom.Parameters.AddWithValue("@DonGia", txtdongia.Text);
//sqlcom.Parameters.AddWithValue("@DonViTinh", do);
sqlcom.ExecuteNonQuery();
loaddata();
}

}
}

Elysium
28-08-2009, 19:27
bạn thử

da.Open();
sqlcom.ExecuteNonQuery();
da.Close();

Theo mình nhìn là bạn chưa open connection nên sinh lỗi