我已经向我添加了一个DataGridView控件来TabControl显示存储在本地应用程序数据库的单个表中的数据Cellar.sdf.
当我将数据源添加到DataGridView时,我选择要显示数据的表并预览数据.它显示数据库中的内容.
当我构建项目时,我收到以下错误:
The type name 'CellarDataSetTableAdapters' does not exist in the type 'Winecellar.Winecellar'
The type name 'CellarDataSet' does not exist in the type 'Winecellar.Winecellar'
Run Code Online (Sandbox Code Playgroud)
我的项目名称是'Winecellar'.当我在VS2012中创建项目时,它创建了一个子文件夹,导致文件结构'Winecellar.Winecellar',但我不确定这是否与此问题有关.在文件夹里面我确实有文件,CellarDataSet它说我失踪了.
我是否TableAdapter必须为我的数据库创建一个单独的数据库,或者我必须以不同的顺序执行操作才能使其工作?
导致我的错误的代码行在我的Form1.Designer.cs文件中,
(1) this.cellarDataSet = new Winecellar.CellarDataSet();
this.wineBindingSource = new System.Windows.Forms.BindingSource(this.components);
(2) this.wineTableAdapter = new Winecellar.CellarDataSetTableAdapters.WineTableAdapter();
Run Code Online (Sandbox Code Playgroud)
(我在MSDN论坛上发现了一个类似的主题,虽然我无法通过阅读它来解决我的问题.请在此处阅读.
我又回来了另一个DataGidView问题
我正在创建一个应用程序,允许用户为购买的产品创建票证
此表单由DataGidView组成,允许用户记录产品详细信息以及价格和数量信息.
目前,DataGidView是数据绑定的,并且在运行时使用数据适配器和命令构建器保存数据
列自动创建,然后我设置格式选项等属性,如下所示
Private Sub SetTicketList()
Try
Con.ConnectionString = CropTrackMod.strConn
SQLAdaptor.SelectCommand = New SqlClient.SqlCommand("SELECT ID, StockRef, Weight, EstimatedPrice, DespatchedQuantity,EstimatedTransportPer,VATRate, EstimatedTransportTotal,EstimatedVAT, EstimatedLineTotal,TicketRef FROM TicketDetail where ticketref ='x'", Con)
builder = New SqlClient.SqlCommandBuilder(SQLAdaptor)
Con.Open()
Dim myTable As DataTable = New DataTable
SQLAdaptor.Fill(myTable)
dgvTicketDetail.DataSource = myTable
'ID Column
dgvTicketDetail.Columns(0).Visible = False
'StockRef
dgvTicketDetail.Columns(1).HeaderText = "StockRef"
dgvTicketDetail.Columns(1).CellType.
'Weight
dgvTicketDetail.Columns(2).HeaderText = "Weight"
dgvTicketDetail.Columns(2).DefaultCellStyle.Format = "0"
dgvTicketDetail.Columns(2).DefaultCellStyle.NullValue = "0"
'Price Per Unit
dgvTicketDetail.Columns(3).HeaderText = "Price"
dgvTicketDetail.Columns(3).DefaultCellStyle.Format = "0.00"
dgvTicketDetail.Columns(3).DefaultCellStyle.NullValue = "0.00"
'Quantity
dgvTicketDetail.Columns(4).HeaderText = …Run Code Online (Sandbox Code Playgroud) 我有一个datagridview.在该DGV中,第一柱是组合框柱.我想,当选择这个组合框值时,下一个fild将自动从数据库中填充.但是出现了错误.
没有为OleDbDataReader上的一个或多个必需参数赋值dr1 = cmd1.ExecuteReader();
我发布了代码.请帮我.
OleDbConnection con = new OleDbConnection(conn);
con.Open();
for (int i = 0; i < dgv.Rows.Count; i++)
{
string query = "select Description from General where AccCode='" +
dgv.Rows[i].Cells[0].Value +
"' and conpanyID='" +
label1.Text + "'";
OleDbCommand cmd1 = new OleDbCommand(query, con);
//OleDbDataAdapter daBranchName = new OleDbDataAdapter(cmd);
OleDbDataReader dr1 = cmd1.ExecuteReader();
while (dr1.Read())
{
dgv.Rows[i].Cells[1].Value = dr1["Description"].ToString();
}
}
con.Close();
Run Code Online (Sandbox Code Playgroud) 我有一些选定的细胞.由于存在多个列,因此集合中单元格的行索引通常采用2,2,2,3,3,3,4,4,4等格式.
我想得到这些单元格的行索引列表.
List<int> selectedRows = new List<int>();
List<DataGridViewCell> cellCollection = dGV_model.SelectedCells.Cast<DataGridViewCell>()
.GroupBy(cell => cell.RowIndex)
.Select(cell => cell.First())
.ToList<DataGridViewCell>();
foreach (DataGridViewCell cell in cellCollection)
{
selectedRows.Add(cell.RowIndex);
}
Run Code Online (Sandbox Code Playgroud)
基本上,我的问题是如何从单个LINQ查询创建一个int列表?现在,我必须遍历cellcollection以将它们添加到int的列表中.
我是VB.net的新手,我不知道如何显示从CSV文件导入的datagridview中的某些列和行.我的问题是我有很多列,我想要显示的是2列:
姓名,年龄,手机号码,身份证号码
亚历克斯,18,09848484841,0010
乔治,19,02987654321,0020
托尼,17,09277470257,0030
如何仅显示"名称和年龄"列及其行?
此代码导致DataGridView grid显示空行,尽管它有一个DataPropertyName设置为"MyProp1" 的列:
public class MyClass
{
public int MyProp1;
public int MyProp2;
public int MyProp3;
}
public class MyItems:IListSource
{
BindingList<MyClass> _items = new BindingList<MyClass>();
//..............................
//IListSource
public bool ContainsListCollection
{
get { return false; }
}
//IListSource
public System.Collections.IList GetList()
{
return _items;
}
}
MyItems i = new MyItems();
.............
//MyItems list is populated
.............
grid.DataSource = i;
Run Code Online (Sandbox Code Playgroud)
可能有什么不对?
如果我使用"MyProp1"列创建一个DataTable,其内容将以正确的方式显示.
我绑定一个DataTable作为DataSource的DataGridView。我为所有人启用了该SortMode属性。但是,当我在DataGridView上进行排序时,排序更改未反映在基础数据源(即DataTable)中。
例如:AutomaticDataGridViewColumn
DataTable table = new DataTable();
table.Columns.Add("Name");
table.Columns.Add("Age", typeof(int));
table.Rows.Add("Alex", 27);
table.Rows.Add("Jack", 65);
table.Rows.Add("Bill", 22);
dataGridView1.DataSource = table;
Run Code Online (Sandbox Code Playgroud)
现在,如果我要像下面那样获得选定的行,即使对 is 进行排序后,它也总是返回DataTable中0 Index处的行Alex, 27。
DataRow newRow = table.NewRow();
newRow.ItemArray = table.Rows[dataGridView1.Rows.IndexOf(dataGridView1.SelectedRows[0])].ItemArray.Clone() as object[];
Run Code Online (Sandbox Code Playgroud)
有人可以建议我应该如何处理这种情况吗?
嗨,我在运行这段代码时遇到此错误,无法弄明白.干杯:
DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
try
{
for (int i = 0; i <= (DataGridView1.Rows.Count); i++)
{
if (DataGridView1.Rows[i].Cells[2].ToString().Equals(returnID))
{
SignIn_Time(updateCmd, OLEDB_Connection, varName, varID, varTime);
break;
}
}
}
catch
{
Run Code Online (Sandbox Code Playgroud) 如何在datagridview中删除具有指定索引的行?所以,如果我想删除索引[2]的行,那我该怎么做?
我试过了:
for (int i = 0; i < dg1.Rows.Count; i++)
{
if (i == 2)//if iteration has reached index 2
{
dg1.Row[i].Delete;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Winforms
我正在使用C#编写Windows窗体应用程序。
我发现有人对如何List<>从DataGridView控件创建对象的建议,但在如何提取单元格值方面我需要更多的帮助。
这是给出的代码;假设dataGridView1are Name和中的两列Address。
如何建立List<ProjList>物件?
foreach (DataGridViewRow dr in dataGridView1.Rows)
{
ProjList = new List<ProjectMasterRec>();
foreach (DataGridViewCell dc in dr.Cells)
{
// build out MyItem
// based on DataGridViewCell.OwningColumn and DataGridViewCell.Value
// how do we code this?
}
ProjList.Add(item);
}
Run Code Online (Sandbox Code Playgroud) datagridview ×10
c# ×8
winforms ×4
data-binding ×2
ms-access ×2
vb.net ×2
bindinglist ×1
csv ×1
dataset ×1
datatable ×1
group-by ×1
linq ×1
list ×1
rows ×1
sorting ×1
tableadapter ×1