В настоящее время я работаю над системой инвентаризации, которая позволит клиенту настраивать свои собственные SQL серверные таблицы.
Пользователь назовет свой столбец и укажет тип данных, который он хотел бы использовать. После того, как они удовлетворены своей таблицей, они нажимают кнопку отправки таблицы, чтобы создать свою таблицу. C# затем создаст уникальную таблицу для пользователя, запустив SQL Серверную хранимую процедуру.
SqlConnection connection = new SqlConnection(Constants.conn);
connection.Open();
string query = "EXEC CreateTable @TableName='"+ UserAccountInfo.Username + "InventoryTable'";
SqlCommand command = new SqlCommand(query, connection);
command.ExecuteReader();
Затем, используя foreach l oop, итерируя по каждому добавленному столбцу (класс UserTable мой пользовательский WPF UserControl), посмотрев на дочернюю панель стека StackTable и назначив свойства Usertable «Name» и «DataType» списку строковых массивов. Затем я перебираю список и выполняю вторую хранимую процедуру, которая изменяет ранее созданную таблицу.
Я верю, что все это работает !! Мой вопрос и проблема заключаются в моей хранимой процедуре.
List<string[]> list = new List<string[]>();
foreach (UserTable ut in StackTable.Children)
{
string dataType = "";
switch (ut.DataType.Text)
{
case "Text": dataType = "Varchar(100)"; break;
case "Number": dataType = "INT"; break;
case "Boolean": dataType = "Varchar(5)"; break;
}
string[] vs = {"[" + ut.Name.Text + "]", dataType};
list.Add(vs);
}
foreach (string[] s in list)
{
string query2 = "EXEC SelectAllCustomers @Name = '" + s[0] + "', @DataType = '" + s[1] + "';";
SqlCommand command2 = new SqlCommand(query, connection);
command2.ExecuteReader();
}
Моя схема базы данных состоит из базовой базы данных с именем InventoryDatabase
, внутри таблицы с именем LoginInfo
, где я храню информацию о пользователе, а остальные таблицы будут таблицами, которые мы создаем выше. ПРОБЛЕМА ЕСТЬ, мои хранимые процедуры выдают синтаксические ошибки.