Обычный способ разрешить конечному пользователю добавить новую запись в базу данных - предоставить пользователю набор элементов управления для заполнения и / или выбора, например, из нескольких отмеченных текстовых полей, списков, флажков и т. Д. управления.
Как это выстроено, зависит от вас, и вы могли бы выложить их так, чтобы имитировать вид сетки. Я бы порекомендовал создать пользовательский элемент управления, а затем использовать его на своей странице.
EDIT:
Чтобы ответить на ваш комментарий о том, как добавить поля в виде записи в базу данных, вы должны сделать что-то вроде следующего (это в C #)
Во-первых, настройте добавление строки подключения в раздел строки подключения в вашем файле web.config. Обычно рекомендуется устанавливать их здесь, если вы собираетесь использовать один и тот же источник данных во всем приложении, так как это избавляет вас от необходимости каждый раз записывать строку подключения
<connectionStrings>
<add name="myConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|db1.mdb"
providerName="System.Data.OleDb" />
</connectionStrings>
Тогда в коде для вашей страницы
protected void AddButton_Click(object sender, EventArgs e)
{
AddRecordToDatabase(txtCustomerName.Text, txtPlaceOfBirth.Text);
/*
Where txtCustomerName and txtPlaceOfBirth are the IDs
of your Name and Place Of Birth textboxes, respectively.
You may want to perform some validation on the textboxes before
performing the insert!
*/
}
private void AddRecordToDatabase(string customerName, string placeOfBirth)
{
OleDbConnection conn;
OleDbCommand cmd;
using (conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString))
{
using (cmd = conn.CreateCommand())
{
cmd.CommandText = "INSERT INTO Customers(Name, PlaceOfBirth) VALUES (@name, @place_of_birth)";
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@name", customerName);
cmd.Parameters.AddWithValue("@place_of_birth", placeOfBirth);
conn.Open();
cmd.ExecuteNonQuery();
}
}
}
Операторы using будут удалять объекты, с которыми по окончании (по сути, это блоки Try-finally).
В зависимости от версии Access может быть возможным вернуть значение после вставки, чтобы указать, была ли вставка успешной или нет (я знаком только с Access 97 - 2003). Если это возможно, вы можете использовать ExecuteScalar вместо ExecuteNonQuery, чтобы получить возвращаемое значение и ответить соответствующим образом.
В качестве очень общего совета я бы не рекомендовал Jet (ядро базы данных, которое использует Access) в качестве серверной базы данных для веб-сайта ASP.NET - взгляните на ответы на этот вопрос по причинам, почему. SQL Server 2005 Express бесплатен для использования * и является отличным выбором базы данных для веб-разработки.
* Существуют некоторые ограничения, проверьте Веб-сайт Microsoft для получения подробной информации.