У нас есть приложение asp.net, поддерживаемое SQL Server 2008 R2. Существует возможность обновлять или вставлять записи в базу данных с листа excel. После выбора файла для загрузки, когда я нажимаю кнопку обновления, страница обновляется, и ничего больше не происходит. База данных не будет обновлена. Я пробовал отлаживать код и, к моему удивлению, он работал нормально! Пробовал много раз, и то же самое происходит. Не будет обновляться из приложения, но обновляется при отладке! Я знаю, что публикация кода поможет людям понять, что problme лучше bu не разрешено публиковать какой-либо код в соответствии с политикой моей организации. Мои извинения. Любая помощь очень ценится!не удалось обновить данные Excel в базе данных сервера sql
-2
A
ответ
0
I think in code u mentioned the Sheet name wrong so that it can't be inserted. may this code helps u..
string excelConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 8.0", path);
OleDbConnection connection = new OleDbConnection();
connection.ConnectionString = excelConnectionString;
string qry = "write query here "' from [Sheet1$]";
OleDbCommand command = new OleDbCommand(qry, connection);
if (connection.State == ConnectionState.Closed)
{
connection.Open();
}
DbDataReader dr = command.ExecuteReader();
string sqlConnectionString = @"Data Source=A115-PC;Initial Catalog=ErpDB;User ID=sa;[email protected]";
// Bulk Copy to SQL Server
SqlBulkCopy bulkInsert = new SqlBulkCopy(sqlConnectionString);
bulkInsert.DestinationTableName = "MTPractiBilling"; // table name
bulkInsert.WriteToServer(dr);
DataSet dsClient = new DataSet();
dsClient = ccSql.pBindDataSet("Select Path,FileSize,DocumentName from MTPractiBilling where UploadName='" + uploadnm + "'");
if (dsClient.Tables[0].Rows.Count > 0)
{
for (int i = 0; i <= dsClient.Tables[0].Rows.Count; i++)
{
clpath = dsClient.Tables[0].Rows[i][0].ToString();
FSize = dsClient.Tables[0].Rows[i][1].ToString();
DocNm = dsClient.Tables[0].Rows[i][2].ToString();
string s = clpath;
string[] words = s.Split('\\');
clpath = words[4];
scpath = words[4];
clpath = ccSql.pReturnSingleValue “ personal query'");
scpath = ccSql.pReturnSingleValue("personal query' "");
int cnt = ccSql.pReturnIntegerValue("personal query'"'");
//int match = ccSql.pReturnInteger("personal query'");
if (cnt <= 0)
{
ccSql.pExecuteQuery("personal query''");
}
else
{
ccSql.pExecuteQuery("personal query''");
Label1.Text = DocNm.ToString() + "-" + FSize.ToString() + " Already Billed or Process..";
return;
}
}