【发布时间】:2013-01-22 13:57:37
【问题描述】:
下面是我尝试从 10 中选择列数据的代码,但是代码无法正常工作
string strSuppId = GridView1.SelectedRow.Cells[10].Text;
错误消息:对象引用未设置为对象的实例。
我的标记
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="pProductId" DataSourceID="AccessDataSource1">
<Columns>
<asp:BoundField DataField="pProductId" HeaderText="pProductId"
InsertVisible="False" ReadOnly="True" SortExpression="pProductId" />
<asp:BoundField DataField="pProductName" HeaderText="pProductName"
SortExpression="pProductName" />
<asp:BoundField DataField="pProductImage" HeaderText="pProductImage"
SortExpression="pProductImage" />
<asp:BoundField DataField="pProductType" HeaderText="pProductType"
SortExpression="pProductType" />
<asp:BoundField DataField="pProductWeight" HeaderText="pProductWeight"
SortExpression="pProductWeight" />
<asp:BoundField DataField="pProductDesign" HeaderText="pProductDesign"
SortExpression="pProductDesign" />
<asp:BoundField DataField="PProductColor" HeaderText="PProductColor"
SortExpression="PProductColor" />
<asp:BoundField DataField="pProductTransparency"
HeaderText="pProductTransparency" SortExpression="pProductTransparency" />
<asp:BoundField DataField="pProductQuantity" HeaderText="pProductQuantity"
SortExpression="pProductQuantity" />
<asp:BoundField DataField="pProductUnitPrice" HeaderText="pProductUnitPrice"
SortExpression="pProductUnitPrice" />
<asp:BoundField DataField="pSupplierId" HeaderText="pSupplierId"
SortExpression="pSupplierId" />
</Columns>
我的代码文件
protected void btnAddPdt_Click(object sender, EventArgs e)
{
if (txtPdtName.Text == "" || ddlPdtType.SelectedItem.Text == "" || txtPrice.Text == "")
{
MessageBox.Show("Fields cannot be empty", "Error Message");
}
else
{
OleDbConnection mDB = new OleDbConnection();
mDB.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data source="
+ Server.MapPath("~/App_Data/Database.accdb");
mDB.Open();
Type csType = this.GetType();
OleDbCommand cmd;
string strSuppId = GridView1.SelectedRow.Cells[10].Text;
string sqlInsert = "INSERT INTO "
+ " Products (pProductName, pProductType, pProductWeight, pProductDesign, pProductColor, pProductTransparency, pProductQuantity, pProductUnitPrice, pSupplierId)"
+ " VALUES (@pdtName, @pdtType, @pdtWt, @pdtDesign, @pdtColor, @pdtTrans, @pdtQty, @pdtPrice, @pSuppId)";
cmd = new OleDbCommand(sqlInsert, mDB);
cmd.Parameters.AddWithValue("@pdtName", txtPdtName.Text);
cmd.Parameters.AddWithValue("@pdtType", ddlPdtType.SelectedItem.Text);
cmd.Parameters.AddWithValue("@pdtWt", txtPdtWt.Text);
cmd.Parameters.AddWithValue("@pdtDesign", txtDesign.Text);
cmd.Parameters.AddWithValue("@pdtColor", txtColor.Text);
cmd.Parameters.AddWithValue("@pdtTrans", ddlTrans.SelectedItem.Text);
cmd.Parameters.AddWithValue("@pdtQty", txtQuantity.Text);
cmd.Parameters.AddWithValue("@pdtPrice", txtPrice.Text);
cmd.Parameters.AddWithValue("@pSuppId", strSuppId);
cmd.ExecuteNonQuery();
mDB.Close();
}
【问题讨论】:
-
“未按应有的方式工作”并不能完全帮助我们了解正在发生的事情。什么不工作?当它不起作用时会发生什么?当它起作用时应该发生什么?
-
第 11 列是
BoundField还是TemplateField? (请注意,基于 .NET 的集合为零) -
@MalcolmNathanielNg:显示网格的 aspx 标记。了解“不工作” 的实际含义也很重要(从不,没有任何借口,用这个词来描述你的问题!)。您想从哪里获取值(例如在事件处理程序、page_load 等中)?
-
分享你写的代码块...然后很容易帮助...
-
大家好,刚刚编辑了代码文件是由按钮触发的
标签: asp.net gridview datagridviewcolumn