为什么我的数据没有添加到我的dbo.table?

时间:2016-07-27 15:01:46

标签: c# sql-server visual-studio

我正在尝试填充由2个表组成的本地mdf数据库。第一个表包含" top lvl"数据和第二个表是"引用"到第一个。

问题是:代码没有填写第二个表,我不明白为什么。该表仅显示一行具有NULL值。我很抱歉,如果这是一个双重帖子,但我试图找到答案,我所得到的一切都很困惑。如果您能够提供解决方案,请尽可能详细说明。提前谢谢。

这里我从前一个方法传入一个DataTable(它已经填满了我想在数据库中插入的值。我检查了。)

public void InsertTrackDataToSql(DataTable dtXL)

这里是完整的代码:

    public void InsertTrackDataToSql(DataTable dtXL)
    {
        DataRow[] selectRows = dtXL.Select();
        SqlConnection sqlCon = new SqlConnection();
        sqlCon.ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Integrated Security=True;Connect Timeout=30";
        sqlCon.Open();
        try
        {
            for (int i = 7; i < selectRows.Length; i++)
            {
                DataRow row = selectRows[i];
                SqlCommand sqlCmd = new SqlCommand("INSERT INTO Track (CUE_NR,TRACK_ID,TITLE,ARTIST,LABEL,COMPOSER,PUBLISHER,TC_IN,TC_OUT,DURATION,FILENAME) VALUES (@CUE_NR,@TRACK_ID,@TITLE,@ARTIST,@LABEL,@COMPOSER,@PUBLISHER,@TC_IN,@TC_OUT,@DURATION,@FILENAME)", sqlCon);
                sqlCmd.Parameters.AddWithValue("@CUE_NR", row.ItemArray[0]);
                sqlCmd.Parameters.AddWithValue("@TRACK_ID", row.ItemArray[1]);
                sqlCmd.Parameters.AddWithValue("@TITLE", row.ItemArray[2]);
                sqlCmd.Parameters.AddWithValue("@ARTIST", row.ItemArray[3]);
                sqlCmd.Parameters.AddWithValue("@LABEL", row.ItemArray[4]);
                sqlCmd.Parameters.AddWithValue("@COMPOSER", row.ItemArray[5]);
                sqlCmd.Parameters.AddWithValue("@PUBLISHER", row.ItemArray[6]);
                sqlCmd.Parameters.AddWithValue("@TC_IN", row.ItemArray[7]);
                sqlCmd.Parameters.AddWithValue("@TC_OUT", row.ItemArray[8]);
                sqlCmd.Parameters.AddWithValue("@DURATION", row.ItemArray[9]);
                sqlCmd.Parameters.AddWithValue("@FILENAME", "Filename");
                sqlCmd.ExecuteNonQuery();
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("WhyNot: " + ex);
        }
        finally
        {
            sqlCon.Close();
        }
    }

0 个答案:

没有答案