2013-06-13 3 views
2

Явно новичок в C#, у меня есть данные с 250 строками, один из столбцов будет заполнен постоянными значениями (эти значения являются строками). Каков наилучший способ хранения этих констант? Любые ссылки ссылки на ваши предложения будут очень признательны. Один из методов, о котором я думал, - это использовать xml-файл, но я не уверен, насколько легко было бы добавлять значения в datatable.Лучший способ хранения большого числа констант C#

+0

Откуда берутся эти струны. У вас есть это в данном формате? Они будут созданы? Одним словом, вы можете указать предварительные условия? –

+0

они предопределены, то есть каждая строка будет иметь свою собственную уникальную строку, которая определена перед запуском. – yawnobleix

+0

Вы имеете в виду метод для его хранения в базе данных или в вашем коде? –

ответ

3

Предполагая, что вы хотите сохранить из файла в базу данных ...

# XML поддержка C отлично:

using System; 
using System.Xml; 

Тогда если у вас есть такой структуры XML:

<Db> 
    <Item str_attr="ghjgjg" other_attr="0" .../> 
    <Item str_attr="fsfsff" other_attr="1" .../> 
    ... 
</Db> 

Затем вы можете просмотреть его следующим образом:

XmlTextReader textReader = new XmlTextReader("db.xml"); 
while (textReader.Read()) 
{ 
    String str = textReader.GetAttribute("str_attr"); 
    if (str != null) { // The current item has an attribute named "str_attr" 
     // Code to insert 'str' to db here 
    } 
} 

Это довольно прямолинейно.

Возможный код для заполнения базы данных:

SqlCommand cmd = new SqlCommand(...); 
cmd.CommandText = "INSERT INTO my_table (my_str_field) " + "VALUES (@str)"; 
cmd.Parameters.AddWithValue("@str", str); 
cmd.ExecuteNonQuery(); 
+0

почему-то не разрешил мне использовать код textReader.HasAttribute ("str_attr"), так что я сделал это несколько иначе. – yawnobleix

+0

Неплохо, я сделал обновление до моего ответа ... –

2

Так что я в конечном итоге делает это следующим образом:

Я создал XML в следующем формате

<Db> 
    <identify> 
     <row> 
      <column2>Name</column2> 
      <column3></column3> 
     </row> 
      : 
      : 
      : 
    </identify> 
</Db> 

Тогда читать в информации из файла xml я использовал следующий код:

XmlTextReader textReader = new XmlTextReader("db.xml"); 
textReader.ReadStartElement("Db"); 
string column2=""; 
for (int row = 0; row < NumOfRows; row++) 
{ 
    if (row == 0) 
    { 
     textReader.ReadStartElement("identify"); 
    } 

    textReader.ReadStartElement("row"); 
    column2 = textReader.ReadElementString("column2"); 
    dataView[row][2] = column2; 
    dataView[row][3] = textReader.ReadElementString("column3"); 
    textReader.ReadEndElement(); //row 
} 

Примечание: Я использую информацию, хранящуюся в xml, и помещаю ее в datatable.

+0

Рад этому вот. Приветствия! –

+0

И спасибо за отзыв ;-) –

Смежные вопросы