我得到這個錯誤,當我寫了下面的代碼:C#擅長於SQL數據庫導入(必須聲明標量變量「@SICILNO」。)
必須聲明標量變量「@SICILNO」。
C#代碼:
private void button1_Click(object sender, EventArgs e)
{
openFileDialog1.Title = "Lütfen Dosya Seçiniz";
openFileDialog1.Filter = " Excel Dosyası (*.xls)|*.xls";
openFileDialog1.FileName = "*.xls";
openFileDialog1.ShowDialog();
textBox1.Text = openFileDialog1.FileName;
string dosya_yolu = openFileDialog1.FileName;
OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + dosya_yolu + "; Extended Properties=Excel 12.0");
OleDbCommand sorgu = new OleDbCommand("select * from [Sayfa1$]", baglanti);
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(sorgu);
DataSet ds;
DataTable Dt;
ds = new DataSet();
objAdapter1.Fill(ds);
Dt = ds.Tables[0];
baglanti.Open();
OleDbDataReader drexcel = sorgu.ExecuteReader();
SqlConnection baglan = new SqlConnection("Server=SBUKEN-NB; User ID=sa; Password=*******; Initial Catalog=PERSONEL");
SqlCommand komut = new SqlCommand();
baglan.Open();
DialogResult sonuc;
sonuc = MessageBox.Show("Kayıtlar Veritabanına aktarılacak ! Onaylıyor musunuz ?","Onay Mesajı", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (sonuc == DialogResult.No)
{
baglan.Close();
}
if (sonuc == DialogResult.Yes)
{
for (int i = 0; i < Dt.Rows.Count; i++)
{
DataRow row = Dt.Rows[i];
int columnCount = Dt.Columns.Count;
string[] columns = new string[columnCount];
for (int j = 0; j < columnCount; j++)
{
columns[j] = row[j].ToString();
}
string sql = "INSERT INTO personel(SICILNO,ADI,SOYADI,KURUM,ISYERI,BOLUM,BIRIM,GOREVI,CINSIYET,";
sql += " DTARIH,DYERI,MEDENIHALI,TCKIMLIKNO,EGITIM,ISEGIRIS,UCRETSIZIZIN,";
sql += " UCRETI,SSKNO,OZELKOD,AGI,CIKISNEDENI,KIDEMYILI,YABANCIDIL, COCUKSAYISI,ASKERLIKDURUM,KANGURUBU,EHLIYET,ADRES,TELEFON,GSMNO,";
sql += " ISTENCIKIS,MESLEKKODU,BABAADI)";
sql += " VALUES (@SICILNO, @ADI, @SOYADI, @KURUM, @ISYERI, @BOLUM, @BIRIM, @GOREVI, @CINSIYET, @DTARIH, @DYERI, @MEDENIHALI, @TCKIMLIKNO, @EGITIM, @ISEGIRIS, @UCRETSIZIZIN, ";
sql += " @UCRETI, @SSKNO, @OZELKOD, @AGI, @CIKISNEDENI, @KIDEMYILI, @YABACIDIL, @COCUKSAYISI, @ASKERLIKDURUM, @KANGURUBU, @EHLIYET, @ADRES, @TELEFON, @GSMNO, @ISTENCIKIS, ";
sql += " @MESLEKKODU, @BABAADI) ";
SqlCommand cmd = new SqlCommand(sql, baglan);
MessageBox.Show(sql.ToString());
komut.Parameters.Add("@SICILNO", columns[0]);
komut.Parameters.Add("@ADI", columns[1]);
komut.Parameters.Add("@SOYADI", columns[2]);
komut.Parameters.Add("@KURUM", columns[3]);
komut.Parameters.Add("@ISYERI", columns[4]);
komut.Parameters.Add("@BOLUM", columns[5]);
komut.Parameters.Add("@BIRIM", columns[6]);
komut.Parameters.Add("@GOREVI", columns[7]);
komut.Parameters.Add("@CINSIYET", columns[8]);
komut.Parameters.Add("@DTARIH", columns[9]);
komut.Parameters.Add("@DYERI", columns[10]);
komut.Parameters.Add("@MEDENIHALI", columns[11]);
komut.Parameters.Add("@TCKIMLIKNO", columns[12]);
komut.Parameters.Add("@EGITIM", columns[13]);
komut.Parameters.Add("@ISEGIRIS", columns[14]);
komut.Parameters.Add("@UCRETSIZIZIN", columns[15]);
komut.Parameters.Add("@UCRETI", columns[16]);
komut.Parameters.Add("@SSKNO", columns[17]);
komut.Parameters.Add("@OZELKOD", columns[18]);
komut.Parameters.Add("@AGI", columns[19]);
komut.Parameters.Add("@CIKISNEDENI", columns[20]);
komut.Parameters.Add("@KIDEMYILI", columns[21]);
komut.Parameters.Add("@YABACIDIL", columns[22]);
komut.Parameters.Add("@COCUKSAYISI", columns[23]);
komut.Parameters.Add("@ASKERLIKDURUM", columns[24]);
komut.Parameters.Add("@KANGURUBU", columns[25]);
komut.Parameters.Add("@EHLIYET", columns[26]);
komut.Parameters.Add("@ADRES", columns[27]);
komut.Parameters.Add("@TELEFON", columns[28]);
komut.Parameters.Add("@GSMNO", columns[29]);
komut.Parameters.Add("@ISTENCIKIS", columns[30]);
komut.Parameters.Add("@MESLEKKODU", columns[31]);
komut.Parameters.Add("@BABAADI", columns[32]);
cmd.ExecuteNonQuery();
baglanti.Close();
}
更好地隱藏你的密碼從你放在SO上的代碼。 – Vladimirs 2014-10-10 11:35:06