0
Это мой стол:Динамическая процедура в C#
ID ReportID M_ID ColsName Type Level Parent ID
1989 66 349 t169.ID j J 1 0
1990 66 350 t170.ID j J 1 0
1991 66 351 t171.ID j J 1 0
1992 66 352 Linkw2.t170ID j 2 1990
1993 66 352 Linkw2.t169ID j 2 1989
1994 66 352 Linkw2.t171ID j 2 1991
И мой код:
DatabaseObject objData = new DatabaseObject();
int ReportID = Convert.ToInt32(Request["ReportsID"]);
objData.Query = "select DISTINCT R.ReportName,R.ID from Reports R inner join ReportModuleCols RC on R.ID=RC.ReportID where RC.ReportID= " + ReportID + " and R.ID= " + ReportID;
string ReportName = Convert.ToString(objData.GetSingleValue());
string StoredProcedure = "";
StoredProcedure += " CREATE PROCEDURE spGet" + ReportName + ReportID + "\n";
StoredProcedure += " @Error Varchar(1000) output\n";
StoredProcedure += " AS \n";
StoredProcedure += " BEGIN \n";
StoredProcedure += " BEGIN TRY\n";
StoredProcedure += " SELECT ";
objData.Query = "select ID,ReportID,ReportModuleID,ColsName,Type,ReportLevel,ParentID from ReportModuleCols where Type='d' and ReportID=" + ReportID;
DataTable Displaytb = objData.GetTable();
for (int d = 0; d < Displaytb.Rows.Count; d++)
StoredProcedure += Displaytb.Rows[d]["ColsName"] + ",";
string DisplayParam = StoredProcedure.Remove(StoredProcedure.Length - 1, 1);
DisplayParam += " FROM \n";
objData.Query = "select ID,ReportID,ReportModuleID,ColsName,Type,ReportLevel,ParentID from ReportModuleCols where Type='i' and ReportID=" + ReportID;
DataTable inputtable = objData.GetTable();
for (int t = 0; t < inputtable.Rows.Count; t++)
{
string table = "";
table = inputtable.Rows[t]["ColsName"].ToString();
table = table.Substring(0, table.IndexOf("."));
DisplayParam += table + ",";
}
string SPQuery = DisplayParam.Remove(DisplayParam.Length - 1, 1) + "\n";
SPQuery += " WHERE \n";
//Here i want to write join query
SPQuery += " END TRY\n";
SPQuery += " BEGIN CATCH\n";
SPQuery += " SET @Error = ERROR_NUMBER() + ' ' + ERROR_MESSAGE();\n";
SPQuery += " END CATCH\n";
SPQuery += " END";
objData.Query = SPQuery;
objData.Execute();
У меня есть одна таблица, в которой у меня есть 3 типа, я и d и J
я для входного параметра
d параметр дисплея
и j для параметра join, и я создаю для него динамическую процедуру. Я не знаю, как написать запрос соединения. Пожалуйста, помогите мне.
У вашего вопроса серьезные проблемы с форматированием. Пожалуйста, обновите, чтобы мы могли прочитать его правильно и помочь вам. –