如何在字符串中设置数据库表值
本文关键字:数据库 设置 字符串 | 更新日期: 2023-09-27 18:29:31
我有一个SQL Server数据库表EmpDetails
,它包含两个行值。我想将这些值保存到另一个表中。但根据我的代码,我只能得到第一行的值。如何从EmpDetails
表中获取所有行的值。
我的示例代码是:
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString);
SqlCommand cmd = new SqlCommand ("select e.MachID,e.Name,e.EmpCode,T.TypeName from EmpDetails e,EmpType t where e.EtypeID=t.EtypeID and e.Deptid='" + dddep.SelectedItem.Value + "'",conn);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
sda.Fill(ds);
string name = Convert.ToString(ds.Tables[0].Rows[0]["Name"]);
string code = Convert.ToString(ds.Tables[0].Rows[0]["EmpCode"]);
string type = Convert.ToString(ds.Tables[0].Rows[0]["TypeName"]);
您可以尝试使用循环,因为当前您在说index[0]时从第一行获取值。
示例:
//let n be the total rows
for(int i = 0; i < n; i++)
{
string name = Convert.ToString(ds.Tables[0].Rows[i]["Name"]);
string code = Convert.ToString(ds.Tables[0].Rows[i]["EmpCode"]);
string type = Convert.ToString(ds.Tables[0].Rows[i]["TypeName"]);
}
希望它能帮助
您可以使用foreach迭代每个表中的行。由于Tables[0].Rows返回DataRowCollection,您可以直接将这些行放入循环中:
var rows = ds.Tables[0].Rows;
foreach (DataRow row in rows)
{
var name = row["Name"];
var code= row["EmpCode"];
var type= row["TypeName"];
}
您可以使用集合来存储每行每列的值,可能就像使用简单数据模型的列表一样。
希望能奏效!
if (ds !=null && ds.Tables.count > 0 ) {
foreach (row in ds.Tables["EmpDetails"].Rows)
{
var name = row["Name"];
var EmpCode= row["EmpCode"];
var TypeName= row["TypeName"];
}
}