Хотя метод 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, массив пользовательских объектов и т. Д.
Не стесняйтесь просить о помощи.