Как преобразовать многозначные данные подпрограммы U2 Business Logic в объекты.NET, такие как DataSet/DataTable, используя U2 Toolkit для.NET?
У меня есть следующая подпрограмма. Он принимает INPUT в качестве аргумента 1 и отправляет многозначные данные OUTPUT в качестве аргумента 2.
SUBROUTINE MV_TO_DATASET_SELECT_SUBROUTINE (ARG_INPUT, ARG_OUTPUT)
x = ARG_INPUT ARG_OUTPUT = "100": @ ВМ: "101": @ ВМ:"102":@ ВМ:"103":@FM:"Нанси": @ ВМ: "Эндрю": @ ВМ: "Джанет": @VM: "Маргарита":@FM:"01/06/1991":@VM:"06/07/1996":@VM:"11/08/1999":@VM:"12/10/2001"
ВЕРНУТЬ
Схема многозначных данных вышеприведенной подпрограммы представлена ниже.
DataSet ds = new DataSet();
DataTable dt = new DataTable("Employee");
ds.Tables.Add(dt);
dt.Columns.Add("ID",typeof(Int32));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("HireDate", typeof(DateTime));
1 ответ
Вы можете выполнить эту задачу одним из следующих способов:
- Используйте MV_To_DataTable() и DataTable_To_MV(). Вы можете создать схему подпрограммы, перетаскивая Empty DataTable в Deginer Empty DataSet.
- Перетаскивая подпрограмму U2 в Visual Studio Server Explorer в DataSet Designer. U2 Subrotine возвращает набор результатов / набор данных, выполняя API, например ST=SQLExecDirect(@HSTMT, "ВЫБРАТЬ F1 КАК COL1,F2 КАК COL2,F3 КАК COL3 ОТ @TMP SLIST 9 ORDER BY 1")
Используйте MV_To_DataTable() и DataTable_To_MV ()
Создать проект веб-приложения ASP.NET. Введите "Web Application_Subroutine" в Имя проекта.
Добавить ссылку на сборку U2NETDK (U2.Data.Client)
Изменить заголовок "Добро пожаловать в ASP.NET!" 'Добро пожаловать в U2 Toolkit для.NET Demo on Business Logic Многозначные строковые данные подпрограммы в.NET DataSet!'
Откройте файл "Default.aspx" и перейдите в режим разработки.
Сделайте следующее:
- Drag and Drop Button Control. Назовите это "Загрузить"
- Drag and Drop Button Control. Назовите это "Обновление"
Перетащите элемент управления GridView.
Щелкните правой кнопкой мыши на Solution Explorer. Выберите Add ->New Item-DataSet. В поле Имя введите "Employee.xsd"
Перетащите DataTable в конструктор. Измените имя на "Таблица сотрудников".
Создайте 3 новых столбца (схема подпрограммы U2):
- ID - DataType: INT
- Имя - DataType: STRING
- HireDate - DataType: DATE
Откройте файл "Default.aspx" в режиме разработки. Дважды щелкните "Кнопка загрузки". Это создаст Код обработчика событий позади.
Вырежьте и вставьте следующий код.
protected void Button1_Click(object sender, EventArgs e)
{
U2ConnectionStringBuilder l = new U2ConnectionStringBuilder();
l.Server = "127.0.0.1";
l.UserID = "user";
l.Password = "pass";
l.Database = "HS.SALES";
l.ServerType = "universe";
string lconnstr = l.ToString();
U2Connection c = new U2Connection();
c.ConnectionString = lconnstr;
c.Open();
U2Command command = c.CreateCommand();
command.CommandText = "CALL MV_TO_DATASET_SELECT_SUBROUTINE(?,?)";
command.CommandType = CommandType.StoredProcedure;
U2Parameter p1 = new U2Parameter();
p1.Direction = ParameterDirection.InputOutput;
p1.Value = "";
p1.ParameterName = "@arg_input";
command.Parameters.Add(p1);
U2Parameter p2 = new U2Parameter();
p2.Direction = ParameterDirection.InputOutput;
p2.Value = "";
p2.ParameterName = "@arg_output";
command.Parameters.Add(p2);
command.ExecuteNonQuery();
Employee.EmployeeDataTable dt = new Employee.EmployeeDataTable();
command.Parameters[1].MV_To_DataTable(dt);
Session["GridDataset"] = dt;
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
Запустите приложение. Нажмите кнопку "Загрузить".
Откройте файл "Default.aspx" в режиме разработки. Дважды нажмите кнопку "Обновить". Он создаст обработчик событий в коде за страницей. Вырежьте и вставьте следующий код.
protected void Button2_Click(object sender, EventArgs e)
{
DataTable dt = (DataTable)Session["GridDataset"];
//To TEST, change first row
string s1 = (string)dt.Rows[0]["Name"];
dt.Rows[0]["Name"] = s1 + "NewValue";
// get the modified rows
DataTable dt_changed = dt.GetChanges();
//call DATASET_TO_MV_UPDATE_SUBROUTINE
U2ConnectionStringBuilder l = new U2ConnectionStringBuilder();
l.Server = "127.0.0.1";
l.UserID = "user";
l.Password = "pass";
l.Database = "HS.SALES";
l.ServerType = "universe";
string lconnstr = l.ToString();
U2Connection c = new U2Connection();
c.ConnectionString = lconnstr;
c.Open();
U2Command command = c.CreateCommand();
command.CommandText = "CALL DATASET_TO_MV_UPDATE_SUBROUTINE(?)";
command.CommandType = CommandType.StoredProcedure;
U2Parameter p1 = new U2Parameter();
p1.Value = "";
p1.Direction = ParameterDirection.InputOutput;
p1.ParameterName = "@arg_data";
command.Parameters.Add(p1);
command.Parameters[0].DataTable_To_MV(dt_changed);
// modified data going to subroutine
string lData = (string)command.Parameters[0].Value;
command.ExecuteNonQuery();
}
Смотрите измененное значение в отладчике, когда вы нажимаете кнопку "Обновить".
U2 Subrotine возвращает набор результатов / набор данных
Создайте соединение данных U2 в Visual Studio Server Explorer. Разверните узел процедур магазина.
Перейдите к подпрограмме, которая возвращает набор результатов / набор данных. Перетащите подпрограмму в DataSet Designer. Он показывает аргумент INPUT и столбцы набора результатов / набора данных.