[英]asp.net inserting data into SQL Server db in while loop
我想將數據從Excel工作表導入SQL Server數據庫(2008)。 我已經成功測試了從xls文件獲取數據的代碼。 但是,我無法將這些數據插入到db表中。 這是代碼的一部分:
while (ctecka.Read())
{
exJmeno = ctecka[0].ToString();
exPrijmeni = ctecka[1].ToString();
Response.Write(exJmeno + " " + exPrijmeni + " ");
pridano = vlozSQL.ExecuteNonQuery();
}
ctecka是DbDataReader對象,它包含來自excel工作表的數據
exJmeno和exPrijmeni是字符串,列中的數據插入其中
問題:
Response.write將頁面寫入我需要的數據
vlozSQL.ExecuteNonQuery忽略(exJmeno和exPrijmeni)中的數據並將空列插入數據庫中的表
這里有一些定義:
string InsertSQL = "INSERT INTO users (name, surname) VALUES (@name,@surname)";
vlozSQL.Parameters.AddWithValue("@name", exJmeno);
vlozSQL.Parameters.AddWithValue("@surname", exPrijmeni);
編輯
string exJmeno = "";
string exPrijmeni = "";
string InsertSQL = "INSERT INTO users (name, surname) VALUES (@name,@surname)";
SqlConnection sqlconn = new SqlConnection(SQLpripoj);
SqlCommand vlozSQL = new SqlCommand(InsertSQL, sqlconn);
vlozSQL.Parameters.AddWithValue("@name", exJmeno);
vlozSQL.Parameters.AddWithValue("@surname", exPrijmeni);
try
{
spojeni.Open();
DbDataReader ctecka = prikaz.ExecuteReader();
sqlconn.Open();
while (ctecka.Read())
{
exJmeno = ctecka[0].ToString();
exPrijmeni = ctecka[1].ToString();
Response.Write(exJmeno + " " + exPrijmeni + " ");
pridano = vlozSQL.ExecuteNonQuery();
}
}
finally
{
spojeni.Close();
sqlconn.Close();
Label2.Text = pridano.ToString();
}
由於字符串在C#中不可變,因此循環中的賦值實際上不會更改參數,您每次都必須添加它們。 你需要做點什么;
while (ctecka.Read())
{
exJmeno = ctecka[0].ToString();
exPrijmeni = ctecka[1].ToString();
Response.Write(exJmeno + " " + exPrijmeni + " ");
vlozSQL.Parameters.Clear();
vlozSQL.Parameters.AddWithValue("@name", exJmeno);
vlozSQL.Parameters.AddWithValue("@surname", exPrijmeni);
pridano = vlozSQL.ExecuteNonQuery();
}
在while循環中移動這部分代碼
vlozSQL.Parameters.AddWithValue("@name", exJmeno);
vlozSQL.Parameters.AddWithValue("@surname", exPrijmeni);
對於前:
while (ctecka.Read())
{
exJmeno = ctecka[0].ToString();
exPrijmeni = ctecka[1].ToString();
vlozSQL.Parameters.AddWithValue("@name", exJmeno);
vlozSQL.Parameters.AddWithValue("@surname", exPrijmeni);
Response.Write(exJmeno + " " + exPrijmeni + " ");
pridano = vlozSQL.ExecuteNonQuery();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.