0
我已經創建了一個數據源來連接SQL Server數據庫。當我使用GridView連接它時它工作正常。我需要閱讀某個項目(比如FirstName
)並將該值存儲到一個變量中。使用數據源讀取SQL Server數據庫
如何使用此數據源?你可以給我這些陳述嗎?
感謝
我已經創建了一個數據源來連接SQL Server數據庫。當我使用GridView連接它時它工作正常。我需要閱讀某個項目(比如FirstName
)並將該值存儲到一個變量中。使用數據源讀取SQL Server數據庫
如何使用此數據源?你可以給我這些陳述嗎?
感謝
的SqlDataSource
旨在作爲顧名思義 - 用於數據綁定的數據源。它是而不是一種從數據庫表中獲取單個值的方法。
如果您需要讀取一個值,你應該使用ADO.NET直 - SqlConnection
和SqlCommand
- 閱讀該值 - 是這樣的:
string sqlStmt = "SELECT FirstName FROM dbo.YourTable WHERE ID = @ID";
using(SqlConnection conn = new SqlConnection(your-connection-string-here-))
using(SqlCommand cmd = new SqlCommand(sqlStmt, conn))
{
cmd.Parameters.Add("@ID", SqlDbType.Int).Value = 4044;
conn.Open();
string firstName = cmd.ExecuteScalar().ToString();
conn.Close();
}
,如果你想讀的ExecuteScalar
調用工作只單行,單列值 - 就像這裏一樣。否則,您需要使用SqlDataReader
,或使用DataTable
和SqlDataAdapter
填充該數據表(如果您有多行)。
更新:,如果你想使用一個SqlDataAdapter
代替 - 這樣做:
public DataTable LoadData()
{
DataTable result = new DataTable();
string sqlStmt = "SELECT ID, FirstName, LastName, Country " +
"FROM dbo.YourTable";
using(SqlConnection conn = new SqlConnection(your-connection-string-here-))
using(SqlCommand cmd = new SqlCommand(sqlStmt, conn))
{
SqlDataAdapter dap = new SqlDataAdapter(cmd);
dap.Fill(result);
}
return result;
}
當你調用這個方法,你會得到一個DataTable
包含您所定義的列的SQL語句以及數據庫表中的所有行。現在
DataTable myData = LoadData();
,你可以遍歷行,並獲得FirstName
值的每一行:
foreach(DataRow row in myData.Rows)
{
string firstName = row["FirstName"].ToString();
// do whatever you need to do with the first name
}
是像ds.Tables [ 「表名」]行[ROWNUMBER] [ 「的ColumnName」 ]可能嗎?即使這不起作用,但有人推薦給我。 –
@furqan sehgal:如果你使用'SqlDataAdapter'並填充'DataTable' - 是的!用'SqlDataSource' - 不行。 –
請指教如何添加sqlDataAdapter和Datatable以及如何綁定它們。有沒有像WinForms中的綁定源。也請說明我需要做我的必要的操作。 –