日期:2014-05-17  浏览次数:20962 次

C#SQL的问题
我有2个表 表A 表D 
表A有个Status字段 值是 9 
表D 有 ID Value Name  3个字段
表D.ID字段下面 有个Status
表A.Status = 表B.ID里面的Status


我在C#代码里面想让 SQL执行完后 表A.Status 的值‘9’  显示为 B.ID的Status对应的 Name字段下面的名字




可能说的有些乱 大神帮忙看下 怎么弄
sql c#

------解决方案--------------------
用子查询
select ta.*,(select top 1 tb.name from D tb where tb.parameterid = 'Status' and tb.parametervalue = ta.status) as dname from A ta
大致是这样
------解决方案--------------------
我有点蒙了。你的意思是不是D.Name怎么打印到页面上显示?使用as别名就可以了。

select D.Name as Status from A,D where ParameterID='Status' and A.Status=D.ParameterValue


            string status = "";
            string connstr = @"Data Source=.;Initial Catalog=MyDB;Integrated Security=True";
            using (SqlConnection conn = new SqlConnection(connstr))
            {
                conn.Open();
                using (SqlCommand com = conn.CreateCommand())
                {
                    com.CommandText = "select D.Name as Status from A,D where ParameterID='Status' and A.Status=D.ParameterValue";
                    DataSet dataset = new DataSet();
                    SqlDataAdapter adapter = new SqlDataAdapter(com);
                    adapter.Fill(dataset);
                    DataTable dt = dataset.Tables[0];
                    DataRow row = dt.Rows[0];
                    status = Convert.ToString(row["Status"]);
                }
            }
            MessageBox.Show(status);