这里用学历进行选择,比如第一学历,第二学历,第三学历
先通过SqlDataReader获取数据,然后选择一个回填到字段里
code:
using (SqlConnection cn = new SqlConnection())
{
cn.ConnectionString = @"Data Source = ******; Initial Catalog = ******; Integrated Security = False; User ID = sa; Password = ******";
cn.Open();
int id = 3;
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = cn;
cmd.CommandText = "Select firstDegree,secondDegree,thirdDegree from Educations where id =@id";
cmd.Parameters.Add("@id", SqlDbType.Int).Value = id;
SqlDataReader reader = cmd.ExecuteReader();
string firstDegree = "";
string secondDegree = "";
string thirdDegree = "";
string Highest;
//判断是否有返回值
if (reader.HasRows)
{
//打开第二个sqlcommand
SqlCommand cmd1 = new SqlCommand();
cmd1.Connection = cn;
//判断该列是否有值
if (!reader.IsDBNull(reader.GetOrdinal("firstDegree")))
{
firstDegree = reader.GetString(0);
//id = reader.GetInt32("firstDegree");//这里可以直接用0,也可以直接用firstDegree
}
if (!reader.IsDBNull(reader.GetOrdinal("secondDegree")))
{
secondDegree = reader.GetString(1);
}
if (!reader.IsDBNull(reader.GetOrdinal("thirdDegree")))
{
thirdDegree = reader.GetString(1);
}
//第三学历不为空的话,回填第三,第二第一皆如此
if(thirdDegree == "")
{
if (secondDegree == "")//回填第一学历
{
Highest = firstDegree;
}
else//回填第二学历
{
Highest = secondDegree;
}
}
else //回填第三学历
{
Highest = thirdDegree;
}
cmd1.CommandText = "Update Educations set Highest = @Highest where id = @id";
cmd1.Parameters.Add("@Highest", SqlDbType.NVarChar).Value = Highest;
cmd1.Parameters.Add("@id", SqlDbType.Int).Value = id;
reader.Close();
cmd1.ExecuteNonQuery();
}
}
}
如果需要对查询的结果进行截取,可以使用
firstDegree = read.GetString(0).Substring(0,2);
或者,Highest = firstDegree.Substring(0,2);