私のアプリケーションでは、ユーザーは本を挿入します。たとえば、someBook は 3 部で挿入されます。Table1.BookID = 1、Table1.Copy = 3、次に別のテーブルでは、これら 3 冊の本が主キーを持つため、Table2.AccessionID = 1,2,3 Table2.BookID = 1, 1, 1 になります。
これは私が現在行っていることですが、アーロン・バートランドが言ったように悪い習慣です。
int BookTitlesID;
public void addBookTitle()
{
int copy = int.Parse(textBox2.Text);
try
{
using (SqlConnection myDatabaseConnection = new SqlConnection(myConnectionString.ConnectionString))
{
myDatabaseConnection.Open();
using (SqlCommand mySqlCommand1 = new SqlCommand("INSERT INTO BookTitles(BookTitle, Copies) Values(@BookTitle, @Copies)", myDatabaseConnection))
{
mySqlCommand1.Parameters.AddWithValue("@BookTitle", BookTitletextBox.Text);
mySqlCommand1.Parameters.AddWithValue("@Copies", copy);
mySqlCommand1.ExecuteNonQuery();
}
}
}
catch (Exception Ex)
{
MessageBox.Show(Ex.Message, "Exception");
}
}
public void addBook()
{
int copy = int.Parse(textBox2.Text);
try
{
for (int x = 0; x < copy; x++)
{
using (SqlConnection myDatabaseConnection = new SqlConnection(myConnectionString.ConnectionString))
{
myDatabaseConnection.Open();
using (SqlCommand mySqlCommand1 = new SqlCommand("INSERT INTO book(BookTitleID) Values(@BookTitleID)", myDatabaseConnection))
{
mySqlCommand1.Parameters.AddWithValue("@BookTitleID", BookTitlesID);
mySqlCommand1.ExecuteNonQuery();
}
}
}
}
catch (Exception Ex)
{
MessageBox.Show(Ex.Message, "Exception");
}
}
private void Form_Load(object sender, EventArgs e)
{
using (SqlConnection myDatabaseConnection = new SqlConnection(myConnectionString.ConnectionString))
{
myDatabaseConnection.Open();
using (SqlCommand mySqlCommand1 = new SqlCommand("SELECT TOP 1 BookTitleID + 1 FROM BookTitles ORDER BY BookTitleID DESC", myDatabaseConnection))
{
string x = mySqlCommand1.ExecuteScalar().ToString();
BookTitlesID = Convert.ToInt32(x);
}
}
}
private void button1_Click(object sender, EventArgs e)
{
addBookTitle();
addBook();
}