Примером этого исключаемого исключения является: Когда вы пытаетесь проверить что-то, это null.
Например:
string testString = null; //Because it doesn't have a value (i.e. it's null; "Length" cannot do what it needs to do)
if (testString.Length == 0) // Throws a nullreferenceexception
{
//Do something
}
Время выполнения .NET исключение NullReferenceException при попытке выполнить действие над чем-то, что не было инстанцировано, т.е. код выше.
По сравнению с ArgumentNullException, которое обычно выбрано как защитная мера, если метод ожидает, что то, что происходит
Дополнительная информация находится в C # NullReferenceException и Null Parameter .
Хотя существуют встроенные возможности .NET для хранения информации, связанной с пользователем (через реестр, файлы конфигурации, настройки и т. д.), они кажутся слишком тяжелыми.
Я бы рекомендовал использовать текстовый файл и сохраните его в папке пользователя:
var userPath = Environment.GetFolderPath(Environment
.SpecialFolder.ApplicationData);
var filename = Path.Combine(userPath, "mysettings");
// Read connection string
var connectionString = File.ReadAllText(filename);
// Write connection string
File.WriteAllText(filename, connectionString);
Также обратите внимание, что вряд ли пользователи получат удовольствие от работы со строками подключения. Они предпочитают указывать имя базы данных, сервер, имя пользователя и т. Д., Используя отдельные поля формы. Чтобы сопоставить эти поля с строкой подключения, вы можете использовать класс SqlConnectionStringBuilder
(если вы работаете с MSSQL Server):
// to connection string
var connectionStringBuilder1 = new SqlConnectionStringBuilder();
connectionStringBuilder1.DataSource = "server";
connectionStringBuilder1.InitialCatalog = "database";
var connectionString = connectionStringBuilder1.ConnectionString;
// from connection string
var connectionStringBuilder2 = new SqlConnectionStringBuilder(connectionString);
var serverName = connectionStringBuilder2.DataSource;
var databaseName = connectionStringBuilder2.InitialCatalog;
Вы можете сохранить строку подключения в App.config
и получить ее следующим образом:
string connStr = ConfigurationSettings.AppSettings["ConnectionString"];
public SqlConnection conn = new SqlConnection(connStr);
Пример App.config
:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=./SQLEXPRESS;Initial Catalog=DB;Integrated Security=SSPI;" providerName="Microsoft.SqlClient" />
</connectionStrings>
</configuration>
У меня возникло бы желание использовать настройки приложения для этой цели.
http://msdn.microsoft.com/en-us/library/aa730869 (v = vs.80). aspx
Это рекомендуемое место для хранения строк соединения: -)
У вас должен быть файл конфигурации app.config
, и там, определите раздел <connectionStrings>
:
<configuration>
<connectionStrings>
<add name="YourNameHere"
connectionString="server=.;database=AdventureWorks;Integrated Security=SSPI"/>
</connectionStrings>
</configuration>
Затем вы добавляете ссылку на System.Configuration
в свой проект, а затем вы могут легко получить эти строки соединения:
string connStr = ConfigurationManager.ConnectionStrings["YourNameHere"].ConnectionString;
using(SqlConnection connection = new SqlConnection(connStr))
{
// do something here....
}