プログラムを実行しようとしているときに問題が発生しました。最初のループでは機能しましたが、2 番目のループでは機能しました。
「vshost.exe が動作を停止しました」
エラーが表示されましたが、デバッグするとエラーが表示されましたExecuteReader()
。誰かがこれに関して私を助けてくれますか?
ここに私のコードの最初の部分があります:
//ここから始める
public void ConvertToText(string _fileUrl, string _fileName) {
//The connection string to the excel file
string connstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + _fileUrl + ";Extended Properties=Excel 12.0;";
//The query
string strSQL = "SELECT * FROM [Sheet1$]";
//The connection to that file
using(OleDbConnection conn = new OleDbConnection(connstr))
//The command
using (OleDbCommand cmd = new OleDbCommand(strSQL, conn))
{
conn.Open();
DataTable dt = new DataTable();
try
{
string extension = System.IO.Path.GetExtension(_fileName);
string result = _fileName.Substring(0, _fileName.Length - extension.Length);
using (OleDbDataReader dr1 = cmd.ExecuteReader())
{
StreamWriter sw = new StreamWriter(@"C:\Users\jhrnavarro\Documents\From SIr Boo\GBOC\Activation\Destination\" + result + ".txt");
if (dr1.Read())
{
dt.Load(dr1);
}
int iColCount = dt.Columns.Count;
for (int i = 0; i < iColCount; i++)
{
sw.Write("'" + dt.Columns[i] + "'");
if (i < iColCount - 1)
{
sw.Write(",");
}
}
sw.Write(sw.NewLine);
// Now write all the rows.
foreach (DataRow dr in dt.Rows)
{
for (int i = 0; i < iColCount; i++)
{
if (!Convert.IsDBNull(dr[i]))
{
sw.Write("'" + dr[i].ToString() + "'");
}
if (i < iColCount - 1)
{
sw.Write(",");
}
}
sw.Write(sw.NewLine);
}
sw.Close();
Console.WriteLine("File is saved");
}
}
catch (OleDbException caught)
{
Console.WriteLine(caught.Message);
}
finally
{
conn.Close();
}
Console.Read();
}
}