考虑这个非常简单的测试项目:
DataGridView1有2列,两者都是在设计时通过右键/编辑列设置的
在ctor DataGridView1中填充了11个记录
运行应用程序时,DataGridView1中显示了11条记录
现在出现问题。
当您单击该按钮时,将调用方法CreateResultDataTable()并在
row.Cells[1].Value.ToString()
值似乎为null,而我知道它不是。
现在对于奇怪的部分,在调试时我将鼠标移到行上,我看到它有2个单元格。所以我将鼠标移到它上面并打开单元格枚举,而不是打开第二个单元格,实际值为null
所以现在我将鼠标移到dataGridView1.Rows上并将鼠标移动到11行中的第一行,而不是再移动到单元格上并打开枚举,当我进入第二个单元格时,值不是NULL!
它们不是同一个对象吗?
这怎么可能?以及如何解决这个问题?
我尝试使用列的名称而不是索引,但结果保持不变,我仍然得到了nulreference异常。
这是该程序的完整代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
LoadMapping();
}
private void button1_Click(object sender, EventArgs e)
{
dataGridView2.DataSource = CreateResultDataTable();
}
private DataTable CreateResultDataTable()
{
DataTable Result = new DataTable();
foreach (DataGridViewRow row in dataGridView1.Rows)
{
Result.Columns.Add(row.Cells[1].Value.ToString()); // why is Value null here ??
}
return Result;
}
private void LoadMapping()
{
dataGridView1.Rows.Add("Message//Header//Message_Type", "MessageType");
dataGridView1.Rows.Add("Message//Header//Creation_Date", "MessageDate");
dataGridView1.Rows.Add("Message//Header//Sequence_Number", "MessageSequenceNumber");
dataGridView1.Rows.Add("Message//Header//Sender", "MessageSender");
dataGridView1.Rows.Add("Message//Header//Receiver", "MessageReceiver");
dataGridView1.Rows.Add("Message//Detail//Visit//Transport_Reference_Out", "LotNumber");
dataGridView1.Rows.Add("Message//Detail//Visit//Licenseplate", "TruckPlate");
dataGridView1.Rows.Add("Message//Detail//Visit//Cargo//VIN", "ChassisNumber");
dataGridView1.Rows.Add("Message//Detail//Visit//Cargo//Make", "BrandName");
dataGridView1.Rows.Add("Message//Detail//Visit//Cargo//LoadDate", "LaadDatum");
}
}
答案 0 :(得分:1)
你需要添加这个,标题也是行。在使用import io.gatling.core.Predef._
import io.gatling.http.Predef._
class SimulationAmritPalSingh extends Simulation {
val httpConf = http
.baseURL("http://computer-database.gatling.io")
.acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
.doNotTrackHeader("1")
.acceptLanguageHeader("en-US,en;q=0.5")
.acceptEncodingHeader("gzip, deflate")
.userAgentHeader("Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0")
val scn = scenario("BasicSimulation")
.exec(http("request_1")
.get("/"))
.pause(5)
setUp(
scn.inject(atOnceUsers(1))
.protocols(httpConf))
}
之前,必须检查单元格是否具有值(不为空),如果单元格为空,则方法Tostring()
抛出异常。
ToString()