わかりましたので、文字列の問題があります。それが単純で、何年もの間それを見つめていて何も起こらなかったのか、それとも避けられないものなのか、私にはわかりません。
そのため、C# を使用して SQL サーバーにログインしようとしています。ログイン ボックスが表示されたら、ユーザー名とパスワードを接続クラスに渡すと、ログインが成功します。
public void login(object sender, EventArgs e)
{
sqlconnect sql = new sqlconnect();
sql.us = textBox1.Text;
sql.pas = textBox2.Text;
try
{
sql.GetSqlConnection();
sql.myConnection.Open();
label3.Text = "Connected";
this.Hide();
fronthyb.Show();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
以下は私の接続クラスです:
public class sqlconnect
{
public SqlConnection myConnection { get; set; }
public String us;
public String pas;
Settings1 set = new Settings1();
public SqlConnection GetSqlConnection()
{
if (myConnection == null)
myConnection = new SqlConnection("user id="+(us)+"; password="+(pas)+";server="+(set.SelectServer)+";Trusted_Connection="+(set.SelectContype)+";database="+(set.SelectDataBase)+"; connection timeout="+(set.Condrop)+"");
return myConnection;
}
}
データベースに情報を追加しようとすると、問題が発生します。
private void button1_Click(object sender, EventArgs e)
{
sql.GetSqlConnection();
SqlCommand cm = new SqlCommand("insert into dbo.Employee(FirstName, LastName, DoB, UserName, Email, Role, JobTitle, MemberOf) values (@FirstName, @LastName, @DoB, @UserName, @Email, @Role, @JobTitle, @MemberOf)", sql.myConnection);
cm.Parameters.AddWithValue("@FirstName", textBox2.Text);
cm.Parameters.AddWithValue("@LastName", textBox3.Text);
cm.Parameters.AddWithValue("@DoB", textBox5.Text);
sql.myConnection.Open();
cm.ExecuteNonQuery();
sql.myConnection.Close();
this.Close();
まだ開発中なので、まだキャッチはありませんが、プログラムがクラッシュし、基本的にユーザーが許可されていないと言います。接続クラスで文字列をテストしましたが、ログイン後に呼び出しても何も返されません。それで、ある時点で「null」に置き換えられたようですか?わからない。明らかな何かを見た人はいますか?長い質問で申し訳ありません。ありがとうございました。