C# 数据绑定之向查询中添加参数(.Net连接外部数据库)
在C#中,我们可以使用.NET连接外部数据库,实现数据绑定等操作。在查询数据时,有时需要向查询中添加参数,以实现更加精准的查询结果。
1. 添加数据库连接
首先,我们需要添加数据库连接,使用SqlConnection
类来连接数据库。连接字符串可以通过Visual Studio中的数据源管理器来获取。
using System.Data.SqlClient; // 需要添加数据库连接
string myConnectionString = @"Data Source=serverName;Initial Catalog=myDataBase;Integrated Security=True";
SqlConnection myConnection = new SqlConnection(myConnectionString);
2. 添加参数
我们可以使用SqlParameter
类来添加参数,如下所示:
using System.Data.SqlClient; // 需要添加数据库连接
string myConnectionString = @"Data Source=serverName;Initial Catalog=myDataBase;Integrated Security=True";
SqlConnection myConnection = new SqlConnection(myConnectionString);
string sqlStatement = "SELECT * FROM myTable WHERE myColumn = @myValue";
SqlCommand myCommand = new SqlCommand(sqlStatement, myConnection);
SqlParameter myParameter = new SqlParameter("@myValue", SqlDbType.NVarChar);
myParameter.Value = "myData";
myCommand.Parameters.Add(myParameter);
在上面的代码中,我们创建了一个SqlCommand
对象,并将查询语句和数据库连接作为构造函数的参数。然后,我们使用SqlParameter
类来创建参数,指定参数的名称和类型。最后,我们将参数添加到SqlCommand
对象的Parameters
集合中。
3. 执行查询
我们可以通过ExecuteReader
方法来执行查询,并返回数据。
using System.Data.SqlClient; // 需要添加数据库连接
string myConnectionString = @"Data Source=serverName;Initial Catalog=myDataBase;Integrated Security=True";
SqlConnection myConnection = new SqlConnection(myConnectionString);
string sqlStatement = "SELECT * FROM myTable WHERE myColumn = @myValue";
SqlCommand myCommand = new SqlCommand(sqlStatement, myConnection);
SqlParameter myParameter = new SqlParameter("@myValue", SqlDbType.NVarChar);
myParameter.Value = "myData";
myCommand.Parameters.Add(myParameter);
myConnection.Open();
SqlDataReader myReader = myCommand.ExecuteReader();
if (myReader.HasRows)
{
while (myReader.Read())
{
// 处理查询结果
}
}
else
{
Console.WriteLine("No data returned.");
}
myReader.Close();
myConnection.Close();
在上面的代码中,我们打开了连接并执行了查询。如果有数据返回,我们就可以逐行读取数据,并进行处理。最后,我们需要关闭DataReader对象和数据库连接。
4. 示例说明
我们以查询学生信息为例,演示如何向查询中添加参数。
首先,我们需要先创建一个学生信息表:
CREATE TABLE [dbo].[Student](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[Gender] [nvarchar](10) NOT NULL,
[Age] [int] NOT NULL,
[Grade] [nvarchar](10) NOT NULL,
CONSTRAINT [PK_Student] PRIMARY KEY CLUSTERED
(
[Id] ASC
) ON [PRIMARY]
) ON [PRIMARY]
然后,我们向表中插入一些数据:
INSERT INTO [dbo].[Student]([Name], [Gender], [Age], [Grade])
VALUES('Lucy', 'Female', 18, 'Grade 1'),
('Mike', 'Male', 19, 'Grade 2'),
('Tom', 'Male', 20, 'Grade 3'),
('Jack', 'Male', 18, 'Grade 1'),
('Mary', 'Female', 19, 'Grade 2'),
('David', 'Male', 22, 'Grade 3');
最后,我们可以使用如下代码查询年龄为18岁的学生信息:
using System.Data.SqlClient;
string myConnectionString = @"Data Source=serverName;Initial Catalog=myDataBase;Integrated Security=True";
SqlConnection myConnection = new SqlConnection(myConnectionString);
string sqlStatement = "SELECT * FROM Student WHERE Age = @age";
SqlCommand myCommand = new SqlCommand(sqlStatement, myConnection);
SqlParameter myParameter = new SqlParameter("@age", SqlDbType.Int);
myParameter.Value = 18;
myCommand.Parameters.Add(myParameter);
myConnection.Open();
SqlDataReader myReader = myCommand.ExecuteReader();
if (myReader.HasRows)
{
while (myReader.Read())
{
string name = (string)myReader["Name"];
string gender = (string)myReader["Gender"];
int age = (int)myReader["Age"];
string grade = (string)myReader["Grade"];
Console.WriteLine("Name: {0}, Gender: {1}, Age: {2}, Grade: {3}", name, gender, age, grade);
}
}
else
{
Console.WriteLine("No data returned.");
}
myReader.Close();
myConnection.Close();
在上面的代码中,我们查询了年龄为18岁的学生信息。如果查询结果中有数据,我们就输出查询结果。否则,输出“没有数据返回”。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#数据绑定之向查询中添加参数(.Net连接外部数据库) - Python技术站