Используйте уникальный токен с постом, чтобы каждый пост / постбэк обрабатывался только один раз.
Отключение кнопки отправки не очень хорошее решение, так как люди могут отключить JavaScript или делать другие странные вещи. Проверка на стороне клиента - хорошее начало, но ее всегда следует подкреплять обработкой на стороне сервера.
Вам нужна эта помощь?
var a = from record in table.Elements("Record")
select new
{
one = (string)record.Elements().ElementAt(0),
two = (string)record.Elements().ElementAt(1)
};
Похоже, вы хотите денормализовать поле, чтобы оно поместилось в 1 столбец в вашей сетке данных.
Помогает ли следующее?
var table = XElement.Parse(@"<Table>
<Record><Field>Value1_1</Field><Field>Value1_2</Field></Record>
<Record><Field>Value2_1</Field><Field>Value2_2</Field></Record>
</Table>");
var temp = from record in table.Elements("Record")
from field in record.Elements("Field")
group field.Value by record into groupedFields
select groupedFields.Aggregate((l, r) => l + ", " + r);
foreach (var row in temp)
Console.WriteLine(row);
Console.ReadKey();
Отказ от ответственности: я мало что делаю SQL или LINQ больше, так что это, вероятно, можно было бы улучшить. Вы можете изменить его.
Вы можете связать вызовы к Elements ()
:
var temp = from field in table.Elements("Record").Elements("Field")
select field.Value;
Вы также можете использовать Descendants ()
:
var temp = from field in table.Descendants("Field")
select field.Value;
Однако это вернет все элементы Вам потребуется двухэтапный процесс: Аннотируйте записи (вместо атрибутов), а затем
Перечислите поля и передайте значения в анонимный класс для привязки, например: Возможно, я далек от того, что вы ищете, но вы ищете что-то вроде этого? Затем верните Э ... Я думаю, вы используете неправильную парадигму LINQ для решения этой проблемы. Вам следует использовать LINQ to XML, который, возможно, немного отличается от ожидаемого. Посмотрите эту ссылку: http://msdn.microsoft.com/en-us/library/bb308960.aspx Он объясняет это на примере, структурно похожем на тот, который вы представили. Подойдет ли ? (не знаю, как сделать так, чтобы это отображалось в строке) Не знаю, работает ли это для вашего конкретного сценария или нет. var detail1 = from d в ds.tbl_Looking_Fors
где d.Profile_ID == id
выберите d.Looking_For; , даже если они не входят в элемент
string xml = [string-goes-here];
XElement elem = XElement.Parse(xml);
int count= 0;
foreach(XElement recordElems in elem.Elements("Record")){
recordElems.SetAttributeValue("id", count);
count++;
}
var temp = from record in elem.Elements("Record")
from field in record.Elements("Field")
select new { Record = "Record " + record.Attribute("id").Value, Field = field.Value };
foreach (var item in temp)
{
Console.WriteLine("{0}: {1}", item.Record, item.Field);
}
}
DataSet ds = new DataSet("Records DS");
ds.Tables.Add("Records");
foreach (XElement record in table.Descendants("Record"))
{
var temp = from r in record.Descendants("Field")
select r.Value;
string[] datum = temp.ToArray();
if (datum != null
&& datum.Length > 0)
{
foreach (string s in datum)
ds.Tables[0].Columns.Add();
DataRow row = ds.Tables[0].NewRow();
row.ItemArray = datum;
ds.Tables[0].Rows.Add(row);
}
}
ds
и установите DataMember
- «Записи»
IEnumerable<List<string>>
var recordList = from record in data.Elements("record") select record;
List<List<string>> x = new List<List<string>>(recordList.Count());
foreach (var record in recordList)
{
var z = from field in record.Elements("field") select field.Value;
x.Add(z.ToList());
}
return x.AsEnumerable();
string[] datum = detail1.ToArray();
if (datum != null && datum.Length > 0)
{
foreach (var row in datum)
{
Label6.Text = datum[0]+" , "+datum[1];
}
}
Похожие вопросы: