C# 如何将数据从一个窗体发送到另一个类的函数
我知道如何将数据从一个表单传递到另一个表单,但如何将数据从一个表单传递到类。这是我想从C# 如何将数据从一个窗体发送到另一个类的函数,c#,C#,我知道如何将数据从一个表单传递到另一个表单,但如何将数据从一个表单传递到类。这是我想从表格1传递到课堂问题的数据: string GrpID = "somevalue"; string DurationID = "somevalue";` 我搜索了一下,但没有得到确切的答案 class Question { string GroupID="here i want this value of GroupID,how can i get this"; string DuraID="
表格1
传递到课堂问题的数据:
string GrpID = "somevalue";
string DurationID = "somevalue";`
我搜索了一下,但没有得到确切的答案
class Question
{
string GroupID="here i want this value of GroupID,how can i get this";
string DuraID="and here value of DurationID";
// so that i can use them here like this
public IEnumerable<Question> GetQuestions(string topicId, int marks)
{
string sql = "select QID,Question,Opt1,Opt2,Opt3,Opt4,AnsOp,Marks from Questions where TopicID IN(" +
topicId + ") and Marks=" + marks.ToString();
var cmd = new OleDbCommand(sql, new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb"));
var rs = cmd.ExecuteReader();
if (rs != null)
{
while (rs.Read())
{
yield return
new Question
{
Id = rs[0].ToString(),
Text = rs[1].ToString(),
Option1 = rs[2].ToString(),
Option2 = rs[3].ToString(),
Option3 = rs[4].ToString(),
Option4 = rs[5].ToString(),
AnswerOption = rs[6].ToString(),
Marks = marks
};
}
}
}
}
public void Foo()//In this function Can i pass that `string[] conf` here?
{
var totQsn = Convert.ToInt16(conf[0]); // isn't this just the sum of everything else?
var mark1qsn = Convert.ToInt16(conf[3]); //this variable contains number of question to be display of mark 1
var mark2qsn = Convert.ToInt16(conf[4]);
var mark3Qsn = Convert.ToInt16(conf[5]);
var mark4Qsn = Convert.ToInt16(conf[6]);
var mark1questionSet = GetQuestions(topicId, 1).ToList();
var mark2questionSet = GetQuestions(topicId, 2).ToList();
}
课堂提问
{
string GroupID=“这里我想要GroupID的这个值,我怎样才能得到它”;
string DuraID=“此处为DurationID的值”;
//这样我就可以在这里像这样使用它们
公共IEnumerable GetQuestions(字符串主题ID,整数标记)
{
string sql=“选择QID、问题、Opt1、Opt2、Opt3、Opt4、AnsOp、TopicID所在问题的标记(”+
topicId+”)和Marks=“+Marks.ToString();
var cmd=new OleDbCommand(sql,new OleDbConnection(@“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb”);
var rs=cmd.ExecuteReader();
如果(rs!=null)
{
while(rs.Read())
{
生利
新问题
{
Id=rs[0]。ToString(),
Text=rs[1]。ToString(),
选项1=rs[2]。ToString(),
Option2=rs[3]。ToString(),
Option3=rs[4]。ToString(),
Option4=rs[5]。ToString(),
AnswerOption=rs[6]。ToString(),
分数=分数
};
}
}
}
}
public void Foo()//在这个函数中,我可以在这里传递'string[]conf'吗?
{
var totQsn=Convert.ToInt16(conf[0]);//这不就是其他所有内容的总和吗?
var mark1qsn=Convert.ToInt16(conf[3]);//此变量包含标记1要显示的问题数
var mark2qsn=Convert.ToInt16(conf[4]);
var mark3Qsn=Convert.ToInt16(conf[5]);
var mark4Qsn=Convert.ToInt16(conf[6]);
var mark1questionSet=GetQuestions(topicId,1.ToList();
var mark2questionSet=GetQuestions(topicId,2.ToList();
}
向类中添加方法:
class Question
{
public void SomeFunction(string grpId, string durationId)
{
...
}
}
然后,您可以从表单中调用它:
questionInstance.SomeFunction("somevalue","somevalue");
你能在课堂上更新这个问题吗?你想对那个类中的值做什么?@Durga为什么不使用一个属性呢?这样我就可以在这里像这样使用它们,嗯,确切地说,在哪里?如果我不想在类函数中直接传递那个值,比如。如果我想传递
string[]conf=db.GetConfiguration(Convert.ToInt16(DurationID)).Split(“|”)
这个conf数组,并希望在classtotQsn=Convert.ToInt16(conf[0])中像这样使用它的值
@Durga-然后调整参数类型以接受string[]
,并在方法中相应地处理它。我已经编辑了问题,我如何调整参数类型以使其接受string[]conf,因为我还想像这样使用此函数var mark1questionSet=GetQuestions(topicId,1).ToList();var mark1questionSet=GetQuestions(topicId,2.ToList()
@Durga所以将void
更改为List
,并将string[]conf
添加到参数中?