Можно ли вставить с помощью sqldatasource без свойства defaultvalue? - PullRequest
0 голосов
/ 10 сентября 2011

Можно ли выполнить операцию вставки в sqldatasource в коде позади без использования свойства значения по умолчанию?Что-то вроде обеспечения некоторого набора значений ключей для параметров и использования метода Insert ()?

Я спрашиваю, потому что InsertParameters [x] .DefaultValue, кажется, делает (теоретически, конечно) что-то другое -Я думаю, переопределение разметки, и это скорее обходной путь.

Знаете ли вы какой-нибудь другой способ сделать это?

Ответы [ 2 ]

0 голосов
/ 12 сентября 2011

Хотя метод DefaultValue выглядит странно, он будет работать нормально. Скорее всего, есть проблема в другом месте.

Вы также сказали, что хотите изменить управление из кода позади. Вы не сможете напрямую вводить значения без использования DefaultValue. Чтобы избежать этого конкретного свойства, вам нужно создать объект и заполнить его.

При этом вы спросили, можете ли вы использовать какую-либо пару ключ-значение для заполнения вставки. Один из способов сделать это - что-то вроде

MyArray myArray = new MyArray();
myArray.add("FirstName", "John");
myArray.add("LastName", "Smith");
myArray.add("Address", "1234 Main St");
myArray.add("Phone", "123-456-786");

SqlDataSource sqlNames = New SqlDataSource(/* Conn */);

sqlNames.InsertCommand = "INSERT INTO [names] ([FirstName],[LastName],[Address],[Phone]) VALUES(@Fname, @Lname, @Address, @Phone)";
foreach (MyObject o in myArray) {
  // Assuming an array of MyObject which has two members
  sqlNames.InsertParameters.Add("@" + o.DBColumnName, o.Value);
}

sqlNames.Insert();

Это код полу-псевдо, но это общая идея делать то, что вы хотите. Используйте HashTable, массив пользовательских объектов и т. Д.

Не стесняйтесь просить о помощи.

0 голосов
/ 12 сентября 2011

Вы должны использовать событие Вставка, в котором вы будете формировать вставленные значения.После этого вы можете использовать Insert (), где вы хотите.

...