繁体   English   中英

在单独的文本框中显示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()例子,但是当我尝试它时,我只得到第一行对我不起作用,虽然我不确定。

使用LINQ2SQLLinq 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM