PDA

View Full Version : Mới chuyển sang học asp.NET hỏi các bác tý



QueenRock
16-09-2004, 14:18
Tui có làm thử một đoạn code như ở duới, mỗi khi nhấn nút thì Status sẽ hiện lên tên người trong đó, nhưng nội dung trong dropdownlist thì được tăng thêm n lần. Có cách nào để khi nhấn nút thì nội dung trong dropdownlist không tăng lên không


<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SQL" %>
<script language="VB" runat="server">

Sub Page_Load(Source As Object, E As EventArgs)
Dim myCommand As SQLCommand
Dim myReader As SQLDataReader
Dim SQL as String
Dim connStr as String
connStr="Server=localhost;uid=sa;pwd=;database=hocasp"
SQL="select * from NHP_NHANSU"
myCommand = new SQlCommand(SQL, connStr)
myCommand.ActiveConnection.Open()
myCommand.Execute(myReader)
while myReader.Read()
HoTen.Items.add(new ListItem(trim(myReader.Item("HoTen")), myReader.Item("id")))
end while
end Sub

Sub HienTen(Source As Object, E As EventArgs)
Status.Text = HoTen.SelectedItem.Text
end sub

</script>
<form runat="server">
<asp:DropDownList runat="server" onChange="HienTen" id="HoTen">

</asp:DropDownList>
<BR>
<asp:button text="Hien thi" onClick="HienTen" runat="server"/>
<BR>
<asp:Label id="Status" runat="server"/>
</form>

linhnhan
16-09-2004, 14:58
Sửa lại thành
Sub Page_Load(Source As Object, E As EventArgs)
If Page.IsPostBack=False Then
Dim myCommand As SQLCommand
Dim myReader As SQLDataReader
Dim SQL as String
Dim connStr as String
connStr="Server=localhost;uid=sa;pwd=;database=hocasp"
SQL="select * from NHP_NHANSU"
myCommand = new SQlCommand(SQL, connStr)
myCommand.ActiveConnection.Open()
myCommand.Execute(myReader)
while myReader.Read()
HoTen.Items.add(new ListItem(trim(myReader.Item("HoTen")), myReader.Item("id")))
end while
End If
end Sub
Còn tại sao lại thế thì đọc thêm tài liệu !!!!!!!!!!!

jay
09-10-2004, 17:41
kiểm tra isPostBack như trên thì không hay ở chổ là những lần trang post back lại sẽ không update data (nếu như data ở dưới db có thay đổi).

Tối nhất là set thuộc tính DataTextField, DataValueiField của dropdown rùi dùng DataBind để bind từ 1 DataSet vào là gọn nhất.

nguyenlong
09-10-2004, 18:37
moi vao nghe cung muon dong giup ban nhung trinh docung dang con non tre qua cho toi vai ngay nua se tra loi duoc thac mac cua ban

KEM_WALL
10-10-2004, 08:05
clear trước khi add, cụ thể là


HoTen.Items.Clear()
while myReader.Read()
HoTen.Items.add(new ListItem(trim(myReader.Item("HoTen")), myReader.Item("id")))
end while

traiHanoi
16-10-2004, 17:40
đoạn code của QueenRock ko chạy
nó lỗi ở myCommand = new SQLcommand(.....);
Mình mới học chỉ nó lỗi chưa sửa được
Bác nào sửa được giúp nhé.

ah
Nhân tiện cho hỏi khi cài .net thì ADO.net có sẵn trong đó.
Chỉ hộ cách kết nối qua ADO.net đi chứ dùng qua cái SQL không hay lắm.

QueenRock
17-10-2004, 07:29
bạn sửa
<%@ import Namespace="System.Data.SQL" %>
thành
<%@ import Namespace="System.Data.SQLClients" %>
là nó chạy
cái này ở trong sách của NXB Lao động - Xã hội (sách có đĩa CD á), chẳng hiểu sao lại có System.Data.SQL, chỗ nào nó cũng in như thế. Quái thật

KEM_WALL
17-10-2004, 18:43
nó in theo framework 1.0 beta

traiHanoi
18-10-2004, 16:43
Login failed for user 'nam'. Reason: Not associated with a trusted SQL Server connection.
Báo lỗi dòng myConn.Open()
user'nam' đã có trong SQLserver