Результаты поиска
Лучше ли создавать классы моделей или придерживаться общего класса утилиты базы данных?
У нас есть простой служебный класс в доме для наших вызовов базы данных (легкая оболочка вокруг ADO.NET), но я думаю о создании классов для каждого database/object. было бы разумно сделать это, или это только выиграло бы, если бы мы использовали полную структуру MVC для ASP.NET?
Итак, у нас есть это:
SQLWrapper.GetRecordset(connstr-alias, sql-statement, parameters);
SQLWrapper.GetDataset(connstr-alias, sql-statement, parameters);
SQLWrapper.Execute(connstr-alias, sql-statement, parameters);
Думая о том, чтобы сделать это:
Person p = Person.get(id);
p.fname = "jon";
p.lname = "smith";
p.Save();
или для нового рекорда -
Person p = new Person();
p.fname = "Jon";
p.lname = "Smith";
p.Save();
p.Delete();
Будет ли это умно, или это будет перебор? Я вижу выгоду для повторного использования, изменения базы данных и maintenance/readability.
Как сохранить древовидную структуру в таблице базы данных с автоматическим увеличением IDs с помощью ADO.NET DataSet и DataAdapter
У меня есть самореферентная таблица ролей, которая представляет собой древовидную структуру
ID [INT] AUTO INCREMENT
Name [VARCHAR]
ParentID [INT]
Я использую ADO.NET DataTable и DataAdapter для загрузки и сохранения значений в эту таблицу. Это работает, если я создаю только дочерние элементы существующих строк. Если я создаю дочернюю строку, а затем создаю дочерний элемент этого ребенка, а затем обновляю, временное значение ID, сгенерированное DataTable, переходит в столбец ParentID. У меня есть следующий набор отношений данных:
dataset.Relations.Add(New DataRelation("RoleToRole",RoleTable.Columns("ID"), RoleTable.Columns("ParentID")))
И когда я создаю новые дочерние строки в DataTable, я вызываю метод SetParentRow
newRow.SetParentRow(parentRow)
Есть ли что-то особенное, что я должен сделать, чтобы заставить поколение ID распространяться рекурсивно, когда я вызываю Update на DataAdapter?
System.Data.SqlClient.SqlException: не удалось создать пользовательский экземпляр сервера SQL
System.Data.SqlClient.SqlException: Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance. The connection will be closed.
Кто - нибудь когда-нибудь получал эту ошибку и/или имел представление о ее причине и/или решении?
Эта ссылка может содержать соответствующую информацию.
Обновление
Строка подключения- =.\SQLEXPRESS;AttachDbFilename=C:\temp\HelloWorldTest.mdf;Integrated Security=True
Предложенный вариант User Instance=false сработал.
Что происходит с| Pipe-разделителями / переменными в строках соединений?
Я знаю, что |DataDirectory / разрешится до App_Data в приложении ASP.NET, но это жестко задано или есть обобщенный механизм, работающий в соответствии с %environment variables% ?
[ADO.NET error]: в базе данных 'master' отказано в разрешении создать базу данных. Попытка прикрепить базу данных с автоматическим именем для файла HelloWorld.mdf не удалась
Создать базу данных разрешение запрещено в базе данных 'master'.
Попытка прикрепить базу данных с автоматическим именем для файла
C:\Documents и Settings\..\App_Data\HelloWorld.mdf потерпели неудачу.
База данных с таким же именем существует, или указанный файл не может быть
открыт, или он находится на UNC share.
Создать базу данных разрешение запрещено в базе данных 'master'. Попытка прикрепить базу данных с автоматическим именем для файла C:\Documents и Settings\..\App_Data\HelloWorld.mdf потерпели неудачу. База данных с таким же именем существует, или указанный файл не может быть открыт, или он находится на UNC share.
Я нашел эти ссылки:
- http://blog.benhall.me.uk/2008/03/sql-server-and-vista-create-database.html
- http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=702726&SiteID=1
Как вы справляетесь с ошибками транспортного уровня в SqlConnection?
Время от времени в высокообъемном приложении .NET вы можете видеть это исключение при попытке выполнить запрос:
System.Data.SqlClient.SqlException: ошибка транспортного уровня имеет произошел при отправке запроса на сервер.
Согласно моим исследованиям, это то, что "just happens" и не так много можно сделать, чтобы предотвратить это. Это не происходит в результате неправильного запроса и, как правило, не может быть продублировано. Он просто появляется, возможно, один раз в несколько дней в занятой системе OLTP, когда соединение TCP с базой данных по какой-то причине портится.
Я вынужден обнаружить эту ошибку, проанализировав сообщение об исключении, а затем повторить всю операцию с нуля, чтобы включить использование нового соединения. Все это не очень красиво.
У кого-нибудь есть альтернативные решения?
ADO.NET рамках лица против NHibernate
Таким образом, платформа ADO.NET Entity Framework получила немного плохую прессу (в виде записей в блоге и петиции), но я не хочу спешить с суждением. Я ограничен во времени для экспериментов, но мне было интересно, работал ли кто-нибудь с ним еще с большей эмпирической обратной связью?
Наконец, каковы мысли об использовании NHibernate, который существует уже давно и может быть более зрелым, чем ADO.NET Entity Framework.
ADO.NET рамках лица против NHibernate
Таким образом, платформа ADO.NET Entity Framework получила немного плохую прессу (в виде записей в блоге и петиции), но я не хочу спешить с суждением. Я ограничен во времени для экспериментов, но мне было интересно, работал ли кто-нибудь с ним еще с большей эмпирической обратной связью?
Наконец, каковы мысли об использовании NHibernate, который существует уже давно и может быть более зрелым, чем ADO.NET Entity Framework.
ADO.NET отображение из SQLDataReader в объект домена?
У меня есть очень простая функция отображения под названием "BuildEntity", которая выполняет обычное скучное кодирование "left/right", необходимое для сброса данных читателя в мой доменный объект. (показано ниже) мой вопрос заключается в следующем - если я не возвращаю каждый столбец в этом отображении как есть, я получаю исключение "System.IndexOutOfRangeException" и хочу знать, есть ли у ado.net что-нибудь, чтобы исправить это, поэтому мне не нужно возвращать каждый столбец с каждым вызовом в SQL ...
То, что я действительно ищу, - это что-то вроде "IsValidColumn", поэтому я могу сохранить эту функцию 1 mapping в своем классе DataAccess со всеми определяемыми левыми/правыми отображениями-и заставить ее работать, даже если sproc не возвращает все перечисленные столбцы ...
Using reader As SqlDataReader = cmd.ExecuteReader()
Dim product As Product
While reader.Read()
product = New Product()
product.ID = Convert.ToInt32(reader("ProductID"))
product.SupplierID = Convert.ToInt32(reader("SupplierID"))
product.CategoryID = Convert.ToInt32(reader("CategoryID"))
product.ProductName = Convert.ToString(reader("ProductName"))
product.QuantityPerUnit = Convert.ToString(reader("QuantityPerUnit"))
product.UnitPrice = Convert.ToDouble(reader("UnitPrice"))
product.UnitsInStock = Convert.ToInt32(reader("UnitsInStock"))
product.UnitsOnOrder = Convert.ToInt32(reader("UnitsOnOrder"))
product.ReorderLevel = Convert.ToInt32(reader("ReorderLevel"))
productList.Add(product)
End While
Как сделать так, чтобы ведущие нули могут быть зачищены при импорте excel doc с использованием c#
Я могу подключиться к файлу excel и прочитать его без проблем. Но при импорте таких данных, как zipcodes, которые имеют ведущие нули, как предотвратить excel от угадывания типа данных и в процессе удаления ведущих нулей?