![](/img/trans.png)
[英]ChangeConflictException when updating rows with LINQ-to-SQL
[英]Show Linq-to-SQL table rows in separate text boxes
我有一个数组,它从Linq-to-SQL查询中获取数据。 我正在使用ASP.NET Webforms。
我们说我有下表:
tblNVRchannels :
ID fltNVR fltNamn
1 75 Kam1-75
2 75 Kam2-75
3 75 Kam3-75
4 75 Kam4-75
5 76 Kam1-76
6 76 Kam2-76
7 76 Kam3-76
C#代码:
using (myDataContext sls = new myDataContext())
{
IQueryable<tblNVRChannel> channels= (from channel in sls.tblNVRChannels
where kanal.fltNVR == 75
select channel);
tblNVRChannel[] kanArray = channels.ToArray();
foreach (var item in channelArray)
{
TextBox1.Text = item.fltNamn;
TextBox2.Text = item.fltNamn;
TextBox3.Text = item.fltNamn;
TextBox4.Text = item.fltNamn;
TextBox5.Text = item.fltNamn;
}
}
使用上面的查询,我从表中获取值,但我无法在单独的文本框中显示每个项目,我得到的是每个文本框中查询的最后一项(Kam4-75),但我想要文本框1中的Kam1-74,kam2- 75在textbox2中,依此类推。
有一些使用FirstOrDefault()
例子,但是当我尝试它时,我只得到第一行对我不起作用,虽然我不确定。
使用LINQ2SQL和Linq to Sql 填充文本框 :如何使用存储过程获取特定行并将列数据显示到文本框中
我尝试使用循环分配textbox.text数据,但我不能。
我想在最终结果中得到类似下面的内容:
TextBox1.Text = kam1-75;
TextBox2.Text = kam2-75;
TextBox3.Text = kam3-75;
TextBox4.Text = kam4-75;
TextBox5.Text = NULL;
试试这个代码。
using (myDataContext sls = new myDataContext())
{
IQueryable<tblNVRChannel> channels= (from channel in sls.tblNVRChannels
where kanal.fltNVR == 75
select channel);
tblNVRChannel[] kanArray = channels.ToArray();
var textbox = GetAll(this, typeof(TextBox));
// Do whatever you want to do with your textbox.
foreach (var item in channelArray)
{
foreach(Control c in textbox)
{
if (c is TextBox)
{
var tx = ((TextBox) x);
if (string.IsNullOrEmpty(tx.Text))
{
tx.Text = item.fltNamn;
break;
}
}
}
}
}
public IEnumerable<Control> GetAll(Control control, Type type)
{
var controls = control.Controls.Cast<Control>();
return controls.SelectMany(ctrl => GetAll(ctrl, type))
.Concat(controls)
.Where(c => c.GetType() == type);
}
根据您的要求更改代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.