あるクラスから別のクラスに値を渡すことはできません。試してみると、値は最初のクラスの値ではなく 0 に渡されます。
私はこれを持っています:人がデータベースにいるかどうかをチェックするメソッド、そして変数IDautorがデータベースにあるIDを取得し、if句に入力し、位置1の配列id2が値を保存しますIDautor...私はクラス Artigo でその値を使用するふりをしていますが、値は常に 0 であり、クラス Autor の理由はわかりません
public bool Login(TextBox txtUser, TextBox txtPassword)
{
string utl, pass;
try
{
utl = txtUser.Text;
pass = txtPassword.Text;
_Sql = "Select Count(IDAutor) From Autor Where uUser = @uUser and Pass = @Pass";
SqlCommand cmd = new SqlCommand(_Sql, Conn);
cmd.Parameters.Add("@uUser", SqlDbType.VarChar).Value = utl;
cmd.Parameters.Add("@Pass", SqlDbType.VarChar).Value = pass;
Conn.Open();
IDautor = (int)cmd.ExecuteScalar();
if (IDautor > 0)
{
MessageBox.Show("Bem Vindo");
Conn.Close();
id2[1] = IDautor;
return true;
}
else
{
MessageBox.Show("Tera que tentar de novo");
Conn.Close();
return false;
}
}
catch(Exception ex)
{
MessageBox.Show("ERRO Message: "+ ex);
Conn.Close();
return false;
}
}
public int[] id2
{
get { return this.id2; }
}
値を配列id2に保存し、その値を別のクラスで使用しようとしている
クラスアルティゴ
public string AddArtigo(string newArtigo)
{
if (newArtigo == null)
{
return "Nao selecionou o PDF desejado. Tente de novo";
}
if (newArtigo != null)
{
using (FileStream st = new FileStream(newArtigo, FileMode.Open, FileAccess.Read))
{
SqlConnection Conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Convidado1\Desktop\Aplicaçao C#\Aplicaçao\ITArtiConf\ITArtiConf\Database1.mdf;Integrated Security=True;User Instance=True");
Autor au = new Autor();
byte[] buffer = new byte[st.Length];
st.Read(buffer, 0, (int)st.Length);
st.Close();
Conn.Open();
SqlCommand cmd = Conn.CreateCommand();
cmd.CommandText = "insert into Artigo (idAutor) values('" + au.id2[1] + "')";
cmd.ExecuteNonQuery();
Conn.Close();
SqlCommand cmd1 = new SqlCommand("UPDATE SomeTable SET Artigo=@Artigo WHERE idAutor =" + au.id2[1], Conn);
cmd1.Parameters.AddWithValue("@Artigo", buffer);
Conn.Open();
int i = cmd1.ExecuteNonQuery();
Conn.Close();
}
return "Guardado";
}
return "Error";
}
au.id2[1] は、他のクラスの値ではなく 0 になります。