Read-only archive. Login and posting are unavailable.

PDA

View Full Version : - lập trình database với C#, anh em giúp giùm em với


viethack911
13-10-2010, 12:13
[QUOTE=viethack911;171082]Mình đang làm 1 bài tập về quản lý hợp đồng, trong đó có chức năng tạo mới HD, mình thực hiện bằng cách truyền dữ liệu nhập từ các textbox vào các biến của proceduce viết trong Sql nên đã làm:

//proceduce nhập dữ liệu vào HD mới:

create proc addHD (@MaHD nvarchar (50),@TenHD nvarchar(max),@BenA nvarchar(max),@DiaChiA nvarchar(max),@NguoiDaiDienA nvarchar(max),@ChucVuA nvarchar(max),@SoGiayUyQuyenA nvarchar(max),@BenB nvarchar(max),@DiaChiB nvarchar(max),@NguoiDaiDienB nvarchar(max),@ChucVuB nvarchar(max),@SoGiayUyQuyenB nvarchar(max),@TinhTrang int,@NgayHieuLuc datetime,@NgayHetHan datetime,@GiaTri numeric(18,0),@DonGia numeric(18,0),@GhiChu nvarchar(max),@NoiDung image)
as
insert HopDong values(@MaHD,@TenHD,@BenA,@DiaChiA,@NguoiDaiDienA,@ChucVuA,@SoGiayUyQuyenA,@BenB ,@DiaChiB,@NguoiDaiDienB,@ChucVuB,@SoGiayUyQuyenB,@TinhTrang,@NgayHieuLuc,@NgayH etHan,@GiaTri,@DonGia,@GhiChu,@NoiDung)




//sau đó viết hàm nhập dữ liệu bên C#:

public void addHD()
{
var sc = new SqlConnection(ketnoi.chuoiketnoi);
sc.Open();
var scm = new SqlCommand("addHD", sc);
scm.Parameters.AddWithValue("@MaHD", MaHD);
scm.Parameters.AddWithValue("@TenHD", TenHD);
scm.Parameters.AddWithValue("@BenA", BenA);
scm.Parameters.AddWithValue("@DiaChiA", DiaChiA);
scm.Parameters.AddWithValue("@NguoiDaiDienA", NguoiDaiDienA);
scm.Parameters.AddWithValue("@ChucVuA", ChucVuA);
scm.Parameters.AddWithValue("@SoGiayUyQuyenA", SoGiayUyQuyenA);
scm.Parameters.AddWithValue("@BenB", BenB);
scm.Parameters.AddWithValue("@DiaChiB", DiaChiB);
scm.Parameters.AddWithValue("@NguoiDaiDienB", NguoiDaiDienB);
scm.Parameters.AddWithValue("@ChucVuB", ChucVuB);
scm.Parameters.AddWithValue("@SoGiayUyQuyenB", SoGiayUyQuyenB);
scm.Parameters.AddWithValue("@TinhTrang", TinhTrang);
scm.Parameters.AddWithValue("@NgayHieuLuc", NgayHieuLuc);
scm.Parameters.AddWithValue("@NgayHetHan", NgayHetHan);
scm.Parameters.AddWithValue("@GiaTri", GiaTri);
scm.Parameters.AddWithValue("@DonGia", DonGia);
scm.Parameters.AddWithValue("@GhiChu", GhiChu);
//scm.Parameters.AddWithValue("@NoiDung", NoiDung);
scm.ExecuteNonQuery();
sc.Close();
}

//cuối cùng mình viết biến cố khi click buttom nhập dữ liệu:

protected void Button1_Click(object sender, EventArgs e)
{
var hd = new HopDong();
hd.MaHD = TextBox1.Text.Trim();
hd.TenHD = TextBox2.Text.Trim();
hd.BenA = TextBox3.Text.Trim();
hd.DiaChiA = TextBox4.Text.Trim();
hd.NguoiDaiDienA = TextBox5.Text.Trim();
hd.ChucVuA = TextBox6.Text.Trim();
hd.SoGiayUyQuyenA = TextBox7.Text.Trim();
hd.BenB = TextBox8.Text.Trim();
hd.DiaChiB = TextBox9.Text.Trim();
hd.NguoiDaiDienB = TextBox10.Text.Trim();
hd.ChucVuB = TextBox11.Text.Trim();
hd.SoGiayUyQuyenB = TextBox12.Text.Trim();
hd.TinhTrang = System.Convert.ToInt32(TextBox13.Text);
hd.NgayHieuLuc = System.Convert.ToDateTime(TextBox14.Text);
hd.NgayHetHan = System.Convert.ToDateTime(TextBox15.Text);
hd.GiaTri = System.Convert.ToInt64(TextBox16.Text);
hd.DonGia = System.Convert.ToInt64(TextBox16.Text);
hd.GhiChu = TextBox18.Text.Trim();
//hd.NoiDung = TextBox19.Text.Trim();
hd.addHD();
Response.Redirect("nhapthanhcongHD.aspx?id=1", true);
}


//Khi chạy thì xuất hiện lỗi:

Procedure or function 'addHD' expects parameter '@MaHD', which was not supplied.



-> Anh em xem giùm mình xem code của mình có vấn đề ở đâu và có thể hướng dẫn giùm mình cách viết nào gọn gọn hơn ở trên, mình còn gà quá

Thanks mọi người ^^!

illusion993
13-10-2010, 12:15
Đang học, chờ học xong đã nhé :byebye:

cobain
13-10-2010, 12:16
hack mà đi nhờ xem code à :|

tibock
13-10-2010, 12:53
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("addData", conn);
cmd.CommandType = CommandType.StoredProcedure;

Cậu chỉnh lại command type là storeprocedure vì lúc cậu tạo cmd nó là String nêu đâu biết command là procedure đâu mà add Parameter

viethack911
13-10-2010, 13:44
Đang học, chờ học xong đã nhé :byebye:

hehe, có gì cứ Pm trao đổi :D

hack mà đi nhờ xem code à :|

hehe, nick name thôi mà bác :sogood:

System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("addData", conn);
cmd.CommandType = CommandType.StoredProcedure;

Cậu chỉnh lại command type là storeprocedure vì lúc cậu tạo cmd nó là String nêu đâu biết command là procedure đâu mà add Parameter

yeah, thank nhiều nhiều nhá :((

codart
13-10-2010, 13:52
OMG! Cũng đang làm 1 cái quản lý siêu thị... chúc đồng chí làm việc tốt :D

tieubavuong1312
13-10-2010, 13:58
Dùng thằng SQLHelper đi ku , tiện hơn rất nhiều đấy

viethack911
13-10-2010, 15:12
OMG! Cũng đang làm 1 cái quản lý siêu thị... chúc đồng chí làm việc tốt :D

hehe, U too!

Dùng thằng SQLHelper đi ku , tiện hơn rất nhiều đấy

thầy em ko cho sử dụng trực tiếp các câu lệnh Sql nên phải viết thông qua proceduce bác ạ :sweat:

tieubavuong1312
14-10-2010, 22:28
hehe, U too!



thầy em ko cho sử dụng trực tiếp các câu lệnh Sql nên phải viết thông qua proceduce bác ạ :sweat:

Uầy, có dùng code trực tiếp đâu em, cũng dùng Stored procudure đấy chứ

Đây là ví dụ sử dụng nó này
http://www.codersource.net/asp-net/application-blocks/using-microsoft-data-access-application-block.aspx

Download thằng này ở đây
http://www.microsoft.com/downloads/en/details.aspx?FamilyId=F63D1F0A-9877-4A7B-88EC-0426B48DF275&displaylang=en