csv file transfer into sql server, Error while running the application

Nov 29 2022 7:31 AM

Managed Debugging Assistant 'ContextSwitchDeadlock' : 'The CLR has been unable to transition from COM context 0x11a4278 to COM context 0x11a41c0 for 60 seconds. The thread that owns the destination context/apartment is most likely either doing a non pumping wait or processing a very long running operation without pumping Windows messages. This situation generally has a negative performance impact and may even lead to the application becoming non responsive or memory usage accumulating continually over time. To avoid this problem, all single threaded apartment (STA) threads should use pumping wait primitives (such as CoWaitForMultipleHandles) and routinely pump messages during long running operations.
 

CODE:

private void btnbrowse_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.DefaultExt = ".csv";
ofd.Filter = "Comma Separated (*.csv)|*.csv";
ofd.ShowDialog();
txtfilename.Text = ofd.FileName;

DataTable dt = new DataTable();
dataGridView1.DataSource = dt.DefaultView;
{

}
}
private void btnclose_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnimport_Click(object sender, EventArgs e)
{
Cursor = Cursors.WaitCursor;

DataTable dt = GetDataFromFile();

if (dt == null) return;

SaveImportDataToDatabase(dt);

MessageBox.Show("Data Import success!");
txtfilename.Text = string.Empty;
Cursor = Cursors.Default;

}
private DataTable GetDataFromFile()
{
DataTable dt = new DataTable();

try
{
using (StreamReader sr = new StreamReader(txtfilename.Text))
{
string header = sr.ReadLine();
if (string.IsNullOrEmpty(header))
{
MessageBox.Show("no file data");
return null;
}
string[] headerColumns = header.Split(',');
foreach (string headerColumn in headerColumns)
{
dt.Columns.Add(headerColumn);
}

while (!sr.EndOfStream)
{
string line = sr.ReadLine();
if (string.IsNullOrEmpty(line)) continue;
string[] fields = line.Split(',');
DataRow importedRow = dt.NewRow();

for (int i = 0; i < fields.Count(); i++)
{
importedRow[i] = fields[i];
}
dt.Rows.Add(importedRow);

}
}
}
catch (Exception e)
{
Console.WriteLine("the file could not be read:");
Console.WriteLine(e.Message);
}

return dt;
}
private void SaveImportDataToDatabase(DataTable S2P5)
{
using (SqlConnection conn =New SqlConnection(@"Data Source=BL03\SQLEXPRESS; Initial Catalog=HDB; User Id=sa; Password=00"))
{
conn.Open();

foreach (DataRow importRow in S2P5.Rows)
{
SqlCommand cmd = new SqlCommand ("INSERT INTO S2P5 (DateTime, Miliseconds, MachineAutoStartStop, Pressure)" +
"VALUES (@DateTime, @Miliseconds, @MachineAutoStartStop, @Pressure)", conn);

cmd.Parameters.AddWithValue("@DateTime", (DateTime)importRow["DateTime"]);
cmd.Parameters.AddWithValue("@Miliseconds", importRow["Miliseconds"]);
cmd.Parameters.AddWithValue("@MachineAutoStartStop", importRow["MachineAutoStartStop"]);
cmd.Parameters.AddWithValue("@Pressure", importRow["Pressure"]);

cmd.ExecuteNonQuery();
}
}

 


Answers (2)