Вставлять данные в таблицу базы данных SQL Server с помощью встроенного запроса, запрещается использовать хранимые процедуры - PullRequest
0 голосов
/ 21 апреля 2010

У меня есть таблица в C #, данные поступают из файла Excel. Мне нужно, чтобы эти данные были вставлены в таблицу SQL Server 2000. Я не должен использовать хранимые процедуры. Как мне это запрограммировать? Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 21 апреля 2010

У вас есть DataTable?

Вам нужно что-то вроде:

// set up connection to your database
using (SqlConnection con = new SqlConnection("your-connection-string-here"))
{
   // define the INSERT statement - of course, I don't know what your table name
   // is and which and how many fields you want to insert - adjust accordingly
   string insertStmt =
      "INSERT INTO dbo.YourTable(field1, field2, field3) " +
      "VALUES(@field1, @field2, @field3)";

      // create SqlCommand object
      using (SqlCommand cmd = new SqlCommand(insertStmt, con))
      {
          // set up the parameters - again: I don't know your parameter names
          // nor the parameters types - adjust to your needs
          cmd.Parameters.Add("@field1", SqlDbType.Int);
          cmd.Parameters.Add("@field2", SqlDbType.VarChar, 100);
          cmd.Parameters.Add("@field3", SqlDbType.VarChar, 250);

          // open connection
          con.Open();

          // iterate over all the Rows in your data table
          foreach (DataRow row in YourDataTable.Rows)
          {
             // assign the values to the parameters, based on your DataRow
             cmd.Parameters["@field1"].Value = Convert.ToInt32(row["columnname1"]);
             cmd.Parameters["@field2"].Value = row["columnname2"].ToString();
             cmd.Parameters["@field3"].Value = row["columnname3"].ToString();

             // call INSERT statement
             cmd.ExecuteNonQuery();
          }

          // close connection
          con.Close();
       }
   }

Конечно, здесь есть без проверки ошибок , вам нужно добавить часть этого самостоятельно (попробуйте .... поймать и так далее). Но, по сути, я бы так и поступил, если бы не мог использовать хранимые процедуры.

0 голосов
/ 21 апреля 2010

использовать System.Data.SqlClient.SqlCommand

...