程序可以运行,功能是把excel中的数据导入到服务器sqlser,为什么会报错无法转换成double格式?
我在sqlser中的数据格式试过char,vchar,nvchar等等,都是报这个错,程序中并没有转换格式啊。
procedure TForm1.Button1Click(Sender: TObject);
var ExcelApp, WorkBook,ExcelRowCount:Variant;
var i:integer;
begin
try
ExcelApp:=CreateOleObject('Excel.Application');
WorkBook := ExcelApp.WorkBooks.Open(edit1.Text);
ExcelApp.Visible := false;//设置excel是否可见
ExcelRowCount := WorkBook.WorkSheets[1].UsedRange.Rows.Count;
for i := 1 to excelrowcount + 1 do
begin
if ((excelapp.Cells[i,1].Value = '') and (ExcelApp.Cells[i,2].Value = '')) then exit
else
with ADOQuery1 do
begin
sql.add('insert into Table_1 (bs,hb) values (:bs,:hb)');
ADOQuery1.parameters.parambyname('bs').value:=(ExcelApp.Cells[i,1].Value);//断点显示在这里出错。/
ADOQuery1.parameters.parambyname('hb').value:=(ExcelApp.Cells[i,2].Value);
end;
end;
finally
WorkBook.Close;
ExcelApp.Quit;
ExcelApp := Unassigned;
WorkBook := Unassigned;
end;
end;
end.
请问如何验证啊,能直接转换吗?
追答if Value.AsString = '' then
如果想省事就直接 try except end
excel不是空值,如果是验证的问题,把for下面的if and换成 if or应该就能通过了,可事实还是不通过,报同样的错。
我加了判断语录,还是同样的报错,是在for i 循环到第二次下面的第一个if处报错
本回答被提问者和网友采纳