在 C# 中从 SQL Server 数据库检索数据
要在 C# 中从 SQL Server 数据库检索数据,您可以使用 SqlConnection, SqlCommand 和 SqlDataReader 对象。实现此目的的方法如下:
建立与数据库的连接:
SqlConnection con = new SqlConnection("Data Source=. Initial Catalog=domain; Integrated Security=True"); con.Open();
创建一个Sql命令对象:
SqlCommand cmd = new SqlCommand("Select * from tablename", con);
执行 SqlCommand:
using (SqlDataReader reader = cmd.ExecuteReader()) { // Iterate over the results and retrieve values while (reader.Read()) { // Get values from the current row } }
但是,您的代码您的问题中提供的内容不起作用,因为您没有参数化 SQL 查询。这使得您的代码容易受到 SQL 注入攻击。要解决此问题,请使用参数化查询:
cmd.CommandText = "select * from tablename where firstname = @firstName"; cmd.Parameters.AddWithValue("@firstName", textBox1.Text);
以下是从数据库检索数据并填充用户定义对象的更完整方法的示例:
public Person GetPerson(string firstName) { var con = ConfigurationManager.ConnectionStrings["Yourconnection"].ToString(); using (SqlConnection myConnection = new SqlConnection(con)) { string oString = "Select * from Employees where FirstName=@fName"; SqlCommand oCmd = new SqlCommand(oString, myConnection); oCmd.Parameters.AddWithValue("@Fname", fName); myConnection.Open(); using (SqlDataReader oReader = oCmd.ExecuteReader()) { while (oReader.Read()) { Person matchingPerson = new Person { firstName = oReader["FirstName"].ToString(), lastName = oReader["LastName"].ToString(), }; return matchingPerson; } } } return null; // If no person found }
要使用此方法方法,您可以使用 firstName 参数调用它,并使用返回的 Person 对象的属性填充文本框。
以上是如何在 C# 中使用参数化查询从 SQL Server 数据库检索数据?的详细内容。更多信息请关注PHP中文网其他相关文章!