Giá trị trả về của một trường nào đó hả bạn? Vậy thì chỉ Update hay Insert mới có chứ (khi đó dùng ParameterDirection.Output) chứ Select thì sao có nhỉ :-??
Mình viết 1 bài về kết nối CSDL đơn giản, mình xem được các giá trị trả về các câu SELECT, các THỦ TỤC NỘI nhưng mình không thể xem( hay gán ) giá trị trả về của 1 FUNCTION khi kiểu trả về là INT hay Float ( cho một biến nào đó) . Mong được chỉ giúp , thanks
Giá trị trả về của một trường nào đó hả bạn? Vậy thì chỉ Update hay Insert mới có chứ (khi đó dùng ParameterDirection.Output) chứ Select thì sao có nhỉ :-??
ý mình là khi giá trị trả về là 1 số nguyên, chứ không còn là 1 bộ của CSDL nữa, làm sao mình đưa 1 số nguyên đó vào 1 biến đây,
ví dụ
select cuont(*)
from sinhvien
thanks
Đã được chỉnh sửa lần cuối bởi BuithiHa : 23-07-2007 lúc 04:44 PM.
Lệnh SQL trả về 1 số nguyên như trên, xét cho cùng thì cũng là 1 DataSet, nhưng chỉ có 1 giá trị. Bạn thử cách này xem:mình là khi giá trị trả về là 1 số nguyên, chứ không còn là 1 bộ của CSDL nữa
Lấy kết quả truy vấn được đưa vào 1 biến DataSet như bình thường. Sau đó dùng cấu trúc:
int val = Int32.Parse(ds.Tables[0].Rows[0][0].ToString());
trong đó:
+ ds: là tên biến DataSet
+ Tables[0].Rows[0][0].ToString(): là lấy giá trị trong cột đầu tiên, của hàng đầu tiên, và thuộc bảng... đầu tiên. Sau đó chuyển thành chuỗi trung gian, và chuyển 1 lần nữa sang số Int32.
Có phải ý của Ha là như dzậy ko?
Đã được chỉnh sửa lần cuối bởi sonhn : 23-07-2007 lúc 05:27 PM.
nó bị lỗi Object reference not set to an instance of an object.Code:SqlDataAdapter thisAdapter1 = new SqlDataAdapter("print dbo.LaydongSV('123')", conn); SqlCommandBuilder thisBuilder1 = new SqlCommandBuilder(thisAdapter1); DataSet thisDataSet1 = new DataSet(); thisAdapter1.Fill(thisDataSet1, "1"); string c = thisDataSet1.Tables["1"].Rows[0][0].ToString();//debug tới đây thì lỗi // dbo.LaydongSV làm hàm trả về đúng 1 số
Mong được chỉ giúp , thanks