0

我有以下方法:

public void LottoTest(object sender, EventArgs e)
        {
            Dictionary<int, int> numbers = new Dictionary<int, int>();
            Random generator = new Random();
            while (numbers.Count < 6)
            {
                numbers[generator.Next(1, 49)] = 1;
            }

            string[] lotto = numbers.Keys.OrderBy(n => n).Select(s => s.ToString()).ToArray();

            foreach (String _str in lotto)
            {
                Response.Write(_str);
                Response.Write(",");
            }
        }

我想将lotto数组的内容插入到 SQL Server 2008 数据库中。问题是我根本不知道该怎么做。我搜索了使用 C# 插入数据库的各种方法,我发现使用表适配器创建存储过程是最好的。

我如何利用这个表适配器从lotto数组中插入数据?

4

1 回答 1

2

我会从这里开始阅读:

MSDN 表适配器概述

话虽这么说 - 这就是我的做法(取决于数字是如何传递给我的)。

using System.Data.SqlClient;


namespace ConsoleApplication1
{
    public class Lotto
    {
        public void InsertLottoNumbers(int[] lottonumbers)
        {
            var connectionstring = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";

            using (var con = new SqlConnection(connectionstring))  // Create connection with automatic disposal
            {
                con.Open();
                using (var tran = con.BeginTransaction())  // Open a transaction
                {
                    // Create command with parameters  (DO NOT PUT VALUES IN LINE!!!!!)
                    string sql =
                        "insert into MyTable(val1,val2,val3,val4,val5,val6) values (@val1,@val2,@val3,@val4,@val5,@val6)";
                    var cmd = new SqlCommand(sql, con);
                    cmd.Parameters.AddWithValue("val1", lottonumbers[0]);
                    cmd.Parameters.AddWithValue("val2", lottonumbers[1]);
                    cmd.Parameters.AddWithValue("val3", lottonumbers[2]);
                    cmd.Parameters.AddWithValue("val4", lottonumbers[3]);
                    cmd.Parameters.AddWithValue("val5", lottonumbers[4]);
                    cmd.Parameters.AddWithValue("val6", lottonumbers[5]);

                    cmd.ExecuteNonQuery(); // Insert Record

                    tran.Commit();  // commit transaction
                }
            }
        }
    }
}
于 2013-06-23T02:27:30.977 回答