PDA

View Full Version : سوال: اجرای Query در C#



hhhassan
جمعه 06 بهمن 1391, 17:53 عصر
با سلام
کد زیر در Query های SQL درست جواب می دهد ولی می خواهم در C# یک لیست برای برگرداند


select 'Child tables' AS TableConnectionType,
OBJECT_NAME(constraint_object_id) as relation_Name,
OBJECT_NAME(parent_object_id) as Table_Name,
sys.columns.name as column_Name
from sys.foreign_key_columns,sys.columns
where sys.foreign_key_columns.parent_object_id=sys.colum ns.object_id
and sys.foreign_key_columns.parent_column_id=sys.colum ns.column_id
union
select 'Parent tables' AS TableConnectionType,
OBJECT_NAME(constraint_object_id) as relation_Name,
OBJECT_NAME(referenced_object_id) as Table_Name,
sys.columns.name as column_Name
from sys.foreign_key_columns,sys.columns
where sys.foreign_key_columns.referenced_object_id=sys.c olumns.object_id
and sys.foreign_key_columns.referenced_column_id=sys.c olumns.column_id



در سی شارپ این کد را نوشتم ولی هیچی بر نمی گرداند :متفکر::گریه:


public static List<Relation_Class> Return_Relations()
{
SqlConnection conn = null;
SqlDataReader reader = null;
List<Relation_Class> ReturnValue = new List<Relation_Class> { };
try
{
string qqq="use ["+DB_Name+"]";
qqq+=" select 'Child tables' AS TableConnectionType, ";
qqq+=" OBJECT_NAME(constraint_object_id) as relation_Name, ";
qqq+=" OBJECT_NAME(parent_object_id) as Table_Name, ";
qqq+=" sys.columns.name as column_Name ";
qqq+=" from sys.foreign_key_columns,sys.columns ";
qqq+=" where sys.foreign_key_columns.parent_object_id=sys.colum ns.object_id ";
qqq+=" and sys.foreign_key_columns.parent_column_id=sys.colum ns.column_id ";
qqq+=" union ";
qqq+=" select 'Parent tables' AS TableConnectionType, ";
qqq+=" OBJECT_NAME(constraint_object_id) as relation_Name, ";
qqq+=" OBJECT_NAME(referenced_object_id) as Table_Name, ";
qqq+=" sys.columns.name as column_Name ";
qqq+=" from sys.foreign_key_columns,sys.columns ";
qqq += " where sys.foreign_key_columns.referenced_object_id=sys.c olumns.object_id ";
qqq+=" and sys.foreign_key_columns.referenced_column_id=sys.c olumns.column_id ";
conn = new SqlConnection(@"Data Source=.\sqlexpress;Integrated Security=True;");
conn.Open();
SqlCommand cmd = new SqlCommand(qqq, conn);
reader = cmd.ExecuteReader();
while (reader.Read())
{
Relation_Class rr = new Relation_Class();
rr.Table_Connection_Type = (System.String)reader["TableConnectionType"];
rr.Relation_Name = (System.String)reader["relation_Name"];
rr.Table_Name = (System.String)reader["Table_Name"];
rr.Column_Name = (System.String)reader["column_Name"];
ReturnValue.Add(rr);
} // while
return ReturnValue;
} // try
finally
{
if (reader != null)
{
reader.Close();
}
if (conn != null)
{
conn.Close();
}
} //finally
}