当我尝试将数据从文本框插入到SqlDataSource时,它会给我错误的“对象引用未设置为对象的实例”
本文关键字:错误 对象引用 设置 实例 对象 数据 文本 SqlDataSource 插入 | 更新日期: 2023-09-27 18:11:40
protected void btnInsert_Click(object sender, EventArgs e)
{
string custName = ddlCustomerName.SelectedValue;
string listing = ddlListing.SelectedValue;
sdsCustomers.InsertParameters["@CustomerID"].DefaultValue = sdsCustomerName.SelectParameters["CustomerID"].DefaultValue;
sdsCustomers.InsertParameters["ListingID"].DefaultValue = sdsCustomerName.SelectParameters[listing].DefaultValue;
sdsCustomers.InsertParameters["FullName"].DefaultValue = custName;
sdsCustomers.InsertParameters["Date"].DefaultValue = txtBxDate.ToString();
sdsCustomers.InsertParameters["Reason"].DefaultValue = ddlReason.SelectedValue;
sdsCustomers.InsertParameters["BidPrice"].DefaultValue = txtBxBidPrice.Text;
sdsCustomers.InsertParameters["CommissionRate"].DefaultValue = txtBxDate.Text;
sdsCustomers.Insert();
}
你能告诉我我哪里做错了吗?
SELECT
CustAgentList.AgentID, CustAgentList.CustomerID,
Customers.LastName + ', ' + Customers.FirstName AS FullName,
CAST(CustAgentList.ListingID AS VARCHAR) + ', ' + Customers.Address + ', ' + Customers.City AS Listing,
CustAgentList.ContactDate AS Date, CustAgentList.BidPrice,
CustAgentList.CommissionRate, ContactReason.ContactReason AS Reason
FROM
CustAgentList
INNER JOIN
Customers ON CustAgentList.CustomerID = Customers.CustomerID
INNER JOIN
ContactReason ON CustAgentList.ContactReason = ContactReason.ContactReason
WHERE
(CustAgentList.AgentID = @AgentID)
ORDER BY
Date
这是我的sdsCustomer insertCommand
。使用此SqlDataSource
的datagridview填充得很好。
您正在使用的控件之一可能返回null
。在null
上调用方法或访问属性会产生NullReferenceException
,将null
传递给许多方法也是如此。
如果可以调试页面,只需在btnInsert_Click
的第一行设置一个断点,并检查赋值右侧的值,以可能找到罪魁祸首。
或者获取异常的堆栈跟踪。还有其他方法可以做到这一点,但请尝试在事件处理程序的修改版本中设置断点,以便调试,如下所示:
protected void btnInsert_Click(object sender, EventArgs e)
{
try { // FORNOW: for debugging
string custName = ddlCustomerName.SelectedValue;
string listing = ddlListing.SelectedValue;
sdsCustomers.InsertParameters["@CustomerID"].DefaultValue = sdsCustomerName.SelectParameters["CustomerID"].DefaultValue;
sdsCustomers.InsertParameters["ListingID"].DefaultValue = sdsCustomerName.SelectParameters[listing].DefaultValue;
sdsCustomers.InsertParameters["FullName"].DefaultValue = custName;
sdsCustomers.InsertParameters["Date"].DefaultValue = txtBxDate.ToString();
sdsCustomers.InsertParameters["Reason"].DefaultValue = ddlReason.SelectedValue;
sdsCustomers.InsertParameters["BidPrice"].DefaultValue = txtBxBidPrice.Text;
sdsCustomers.InsertParameters["CommissionRate"].DefaultValue = txtBxDate.Text;
sdsCustomers.Insert();
}
catch (Exception ex) { // FORNOW: for debugging
var exDetails = ex.ToString();
; // Set a breakpoint here, and inspect the value of exDetails.
}
}